java - 如何迭代java类并使用hashmap来选择正确的方法?

标签 java reflection hashmap

这里的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/

相关文章:

java - 使用数组调用带可变参数的构造函数

带有 Int 数组的 Java HashMap

java - Eclipse 无法识别 Maven 项目中的任何错误

java - 第 20 行错误 : Required 'Int' found Double

java - Postgresql 枚举在 springboot 1.5->2.0 迁移期间中断

pointers - 当字段是指向 x 的指针时,使用反射设置结构字段的值

c# - 从函数中提取函数名

hashmap - 从 HashMap 获取第一个元素

java - 用 Java 实现一个包

java - JAXB、XJC : Generating field to Class Outline