【发布时间】:2014-05-14 00:15:38
【问题描述】:
这是我的代码。
String name = "expevaluator." + super.left.getClass().getSimpleName() + super.right.getClass().getSimpleName() + "Addition";
try {
Object instance;
instance = Class.forName(name).newInstance();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException ex) {
Logger.getLogger(Addition.class.getName()).log(Level.SEVERE, null, ex);
}
我正在尝试调用变量“name”类的评估函数。
这是评估函数。
public Number evaluate(int left, int right) {
return left + right;
}
这是 IntegerIntegerAddition 类的评估方法
我也有 IntegerDoubleAddition 类评估方法
public Number evaluate(int left, double right) {
return left + right;
}
所以变量名可以有“IntegerIntegerAddition”或“IntegerDoubleAddition” 我希望他们都使用 2 个参数调用 Evaluate 方法。
【问题讨论】:
-
好的,所以你需要通过反射获取相关方法并调用它——你为那部分尝试了什么?
-
我不确定您想要达到的目标。我觉得您正在尝试做的事情在这里缺少一些上下文。
标签: java reflection runtime