Java 将任何枚举传入方法

Java 将任何枚举传入方法,java,methods,input,enums,any,Java,Methods,Input,Enums,Any,我正在用Java编写并尝试创建一个方法,该方法将接受我传递给它的任何枚举类,如下所述(主要是): 当我试图将枚举传递给这种类型的方法时,遇到了一个问题。它希望我更改方法以获取特定的枚举类。有人知道我做错了什么吗 以下是我的方法版本: public Class Presenter{ public static <E extends Enum<E>> List<String> getEnumString(Class<E> eClass){ L

我正在用Java编写并尝试创建一个方法,该方法将接受我传递给它的任何枚举类,如下所述(主要是):

当我试图将枚举传递给这种类型的方法时,遇到了一个问题。它希望我更改方法以获取特定的枚举类。有人知道我做错了什么吗

以下是我的方法版本:

public Class Presenter{
public static <E extends Enum<E>> List<String> getEnumString(Class<E> eClass){
    List<String> returnList = new ArrayList<String>();

    for (E en: EnumSet.allOf(eClass)){
        returnList.add(en.name());
}
    return returnList;
}
}
公共类演示者{
公共静态列表getEnumString(类eClass){
List returnList=new ArrayList();
对于(E-en:EnumSet.allOf(电子课堂)){
returnList.add(en.name());
}
退货清单;
}
}
这就是我试图传递的信息。错误是该参数不适用,建议将上述方法更改为仅接受MyEnumClass:

MyEnumClass eclass;

List<STtring> string = presenter.getEnumString(eclass);
MyEnumClass电子课堂;
列表字符串=presenter.getEnumString(eclass);
我感谢任何能提前提供帮助的人

谢谢

-伊莱

eClass是对MyEnumClass对象的引用。需要传递给函数的是类类型本身。语法是:

MyEnumClass.class
下面的代码将执行您想要的操作。请注意,我传入了MyEnumClass.class,而不是一个变量

import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;

public enum MyEnumClass
{
    ENUM_1, ENUM_2, ENUM_3, ENUM_4, ENUM_5;

    public static void main(String[] args)
    {
        for (String string : getEnumString(MyEnumClass.class))
            System.out.println(string);
    }

    public static <E extends Enum<E>> List<String>
            getEnumString(Class<E> eClass)
    {
        List<String> returnList = new ArrayList<String>();

        for (E en : EnumSet.allOf(eClass))
        {
            returnList.add(en.name());
        }

        return returnList;
    }
}

您的方法需要一个
实例值。你知道类的类型是什么吗?你想做的是presenter.getEnumString(MyEnumClass.Class)。非常感谢您抽出时间来帮助我。
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;

public enum MyEnumClass
{
    ENUM_1, ENUM_2, ENUM_3, ENUM_4, ENUM_5;

    public static void main(String[] args)
    {
        for (String string : getEnumString(MyEnumClass.class))
            System.out.println(string);
    }

    public static <E extends Enum<E>> List<String>
            getEnumString(Class<E> eClass)
    {
        List<String> returnList = new ArrayList<String>();

        for (E en : EnumSet.allOf(eClass))
        {
            returnList.add(en.name());
        }

        return returnList;
    }
}
ENUM_1
ENUM_2
ENUM_3
ENUM_4
ENUM_5