如何在运行时创建jar库中的类实例

时间:2017-09-19 08:08:00

标签: java

我正在写一个计算器。有一个叫做运算符的包,我已经在其中实现了四个主要的运算符(+, - ,*,/); 我有另一个名为OperatorsCatalog的类,它包含已知运算符的映射;我在其构造函数中为它们创建实例,并将它们添加到映射中。 现在我想知道另一个开发人员如何传递一个已经实现了自己的new operator的NewOperator.jar文件。我可以将这个新的运算符添加到我的地图中,以便在计算时,new运算符存在于map.how中我可以不改变我的OperatorsCatalog代码吗? 我是用java编写的

2 个答案:

答案 0 :(得分:0)

也许继承运算符并在super构造函数中执行加法?这样,任何扩展Operator的任何实例化都会自动将其添加到地图

public abstract class Operator {

    protected Operator() {
        // add to map here
    }

    ...
}

答案 1 :(得分:0)

如果我没有错,你希望能够在类路径中发现新的Operator类,请看看这个问题。

Can you find all classes in a package using reflection?

另外你&新开发人员需要修复一个关于如何编写新的Operator类的合同。