gpt4 book ai didi

java - 反射的 NoSuchMethodException 问题

转载 作者:行者123 更新时间:2023-11-29 06:14:22 26 4
gpt4 key购买 nike

所以,我得到了一些类似的东西:

public abstract class myClass {  
String myString;
int test;

public myClass(String heuristic) {
mystring = heuristic;
test = heuristicSwitch();
}

public int heuristicSwitch() {
int hTest = 0;

try {
String methodName = "getHeuristic" + myString;
Method actionMethod = myClass.class.getDeclaredMethod(methodName);
hTest = (Integer)actionMethod.invoke(this);
}
catch(Exception e) {
}

return hTest;
}

public int getHeuristicManhattan() {
return 100;
}

我很难过...我一直收到 NoSuchMethodException,但我不知道为什么。我认为问题可能是 myClass 是抽象的,所以我用 getClass() 尝试了这个并且有相同的异常,所以我认为它是别的东西(除非它没有找到父类(super class)方法?)。想法?

最佳答案

尝试使用 getMethod() 而不是 getDeclaredMethod。前者将您限制在特定的类实例中,后者包括整个层次结构。另外,我假设启发式(例如“曼哈顿”)的大写字母适当?

也就是说,通过使用枚举和某种内部策略类可能会更好地处理类似的事情。然后,您将枚举映射到相关的策略实现。

关于java - 反射的 NoSuchMethodException 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com