java - 尝试 - 捕获枚举

标签 java

我想将方法​​保存在 Enum 中,但 Class.getDeclaredMethod 抛出 NoSuchMethodException,那么我该如何处理呢? 我的代码:

public enum Card {

OPENPRISON(false, Cards.class.getDeclaredMethod("", Player.class));

private boolean isInstant;
private Method method;

private Card(boolean isInstant, Method method){
    this.method = method;
    this.isInstant = isInstant;
}

public boolean isInstant() {
    return isInstant;
}

public void run(Player p){

}

}

OPENPRISON 就是问题所在

最佳答案

一个直接的技术问题是您没有在调用 getDeclaredMethod() 时提供方法名称:

OPENPRISON(false, Cards.class.getDeclaredMethod("", Player.class));

一个更大的问题是为什么您需要使用反射。

枚举值是一个常量。使用反射可以做哪些使用静态方法无法轻松完成的事情?或者使用枚举之外的方法?

关于java - 尝试 - 捕获枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39807123/

相关文章:

java - Hsqldb - 从存储过程返回结果集

Java 关联类之间的引用不匹配(??)

java - 如何分析 .mdmp 文件?

java - Java 嵌入式套件的 Websocket

java - 聚集 HashMap

java - 验证jsp页面上的登录表单

java - Spring 启动,jdbcTemplate,Java

Java:按位 OR 和 AND 是否比等效的逻辑运算符更快?

java - 如何创建枚举 isXXX() 方法?

java - 类是否应该负责检查是否已创建可行的对象?如果是这样怎么办?