Java 使用反射的类方法

Java 使用反射的类方法,java,reflection,java-8,Java,Reflection,Java 8,所以我觉得我的设计有点混乱, 这是我得到的 我的应用程序需要很多枚举,每个枚举包含多个初始化对象和一个“Get Best”方法 枚举MyNumberEnum{ 第一(“第一”,1) 第三(“第三”,3) 公共字符串名称; 公共整数; MyNumberEnum getBest(整数){ MyNumberEnum bestNumber=第一个; 对于(MyNumberEnum编号:MyNumberEnum.values()){ 如果(number.num使用文档: 我用过: return(Enum

所以我觉得我的设计有点混乱, 这是我得到的

我的应用程序需要很多枚举,每个枚举包含多个初始化对象和一个“Get Best”方法

枚举MyNumberEnum{
第一(“第一”,1)
第三(“第三”,3)
公共字符串名称;
公共整数;
MyNumberEnum getBest(整数){
MyNumberEnum bestNumber=第一个;
对于(MyNumberEnum编号:MyNumberEnum.values()){
如果(number.num使用文档:

我用过: return(Enum)enumMap.get(enumName).getDeclaredMethod(“getBest”,Script.class).invoke(null,api)

因为它继承自Best类,是静态方法。 它可以使用一些更简单的方法,比如.getBest() 显然不能

谢谢
@nullpointer

你的意思是你得到了类实例或类型?@nullpointer我使用了map.put(“Number”,MyNumberClass.class),所以我得到了MyNumberClass.class。我想这是类类型编辑:hashmap Decelleration hashmap这将帮助你做一些事情,如果它不起作用,你会回来。你的整个问题让人困惑。你想要一个类方法吗(aka
静态
方法)是否?在第一个代码示例中,方法不是静态的,但是,使用
接口的问题是什么?在第二个示例中,有一个基类
最佳的
和一个子类有什么关系?顺便问一下,
抽象的
方法不能有主体。那么的相关性是什么ode>HashMap
您在最后谈论的是什么?为什么您要将
“Number”
映射到
MyNumberClass.class
?您的问题之前的文本没有提到需要从
“Number”
映射到任何东西;您谈论的是
枚举
s…
enum MyNumberEnum{
First("First", 1)
Third("Third", 3)

public String name;
public int num;

MyNumberEnum getBest(int num){
            MyNumberEnum bestNumber = First;
        for (MyNumberEnum number: MyNumberEnum.values()) {
            if (number.num <= num)
                bestNumber = number;
        }
        return bestNumber ;
}
}
public abstract class Best {

public abstract Enum<?> getBest(int num);
}

class MyNumberClass extends Best {
    public abstract Enum<?> getBest(int num){return MyNumberEnum.getBest(num)}
}