2017-05-08 50 views
1

Java noob here,我有一个程序,我想迭代在另一个文件中添加的插件的数量,然后只要它是一个前缀和后缀计算器,我想检查堆栈中的符号是否是例如'+',所以找到从Operator类扩展的Addition类,然后调用doAction(stack.pop(),stack.pop()),这是因为我想添加无限的方法来计算更多的符号 我试图使用反射,但我不明白怎么名称之间循环到让程序选择正确的方法如何迭代一个java类并使用hashmap来选择正确的方法?

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; 
     } 
    } 
} 

回答

0

通过阅读你的要求,我会建议使用工厂或抽象工厂设计模式。基本上你想根据你的参数执行特定类的方法。您可以创建工厂类,根据您传递的参数返回您想要的类,它将完成您的工作。 for reference

相关问题