【发布时间】:2015-08-26 17:21:17
【问题描述】:
我有一个接口 Operator,它有一种方法:
public interface Operator
{
double calculate(double firstNumber,double secondNumber);
}
然后我有四个类(加号、减号、除法、乘法),它们像这样实现运算符:
public class Plus implements Operator
{
public double calculate(double firstNumber,double secondNumber)
{
return firstNumber + secondNumber;
}
}
public class Minus implements Operator
{
public double calculate(double firstNumber,double secondNumber)
{
return firstNumber - secondNumber;
}
}
等等…… 对于处理运算符,我使用 Map :
private static Map<String,Operator> operatorMap = new HashMap<String,Operator>();
static
{
operatorMap.put("+", new Plus());
operatorMap.put("-", new Minus());
operatorMap.put("*", new Multiply());
operatorMap.put("/", new Divide());
}
double output = 0;
output = operatorMap.get(elementInExpression[2]).calculate(firstNumber,secondNumber);
现在我想将我的应用程序更改为动态工作,如果我实现其他类(如 %),我的应用程序仍然可以工作。为此,我将 .class 文件放在一个文件夹中。我想从 .class 文件中自动选择。在我看来,我应该使用反射 API。谁能帮我使用这个 API?(不要使用反射,因为它不是 java 反射 API 的一部分)
【问题讨论】:
标签: java