这里的Java菜鸟,我有一个程序,我想迭代已在另一个文件中添加的插件的数量,然后只要它是前缀和后缀计算器,我想检查堆栈中的符号是否为“+”,因此找到从 Operator 类扩展的 Addition 类,然后调用 doAction(stack.pop(), stack.pop()) ,这是因为我想添加无限的方法来计算更多符号 我尝试使用反射,但我不明白如何在名称之间循环以让程序选择正确的方法
public class Operator {
public int doAction(int op1, int op2) {
return 0;
}
public String getOperator(String sign) {
return null;
}
public String setOperator() {
return null;
}
}
class Plus extends Operator {
public int doAction(int op1, int op2) {
return op1 + op2;
}
public String setOperator() {
return "+";
}
public String getOperator(String sign) {
if (sign.equals("+")) {
return "+";
} else {
return null;
}
}
}
class Minus extends Operator {
public int doAction(int op1, int op2) {
return op1 - op2;
}
public String setOperator() {
return "-";
}
public String getOperator(String sign) {
if (sign.equals("-")) {
return "-";
} else {
return null;
}
}
}
最佳答案
通过阅读您的要求,我建议使用工厂或抽象工厂设计模式。基本上你想根据你的参数执行特定类的方法。您可以创建工厂类,它根据您传递的参数返回您想要的类,它将完成您的工作。 for reference
关于java - 如何迭代java类并使用hashmap来选择正确的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43841492/