让我们想象一下,我们必须根据运行时的定义从不同的类调用一个方法。例如,我们收到这样的 JSON:
{"calculator": "MyClass1", "parameter1": 1.0, "parameter2": 2.0, ... }
MyClass1 和更多类要么扩展某个基类,要么实现某个接口(只是为了能够在运行时枚举它们)。我们必须创建对象,将参数传递给对象并调用 calculate() 方法。
我可以想到两种方法来做到这一点:
switch(calculatorString) { case "MyClass1":calculator = new MyClass1(); ...
使用 Java 反射
第一种方法真的很愚蠢,因为每次向项目添加新的计算器类时都必须更新代码。第二种方法稍好一些,但 IDE 无法捕获我们在创建对象和调用方法时犯的任何类型错误。
有没有其他方法可以做到这一点(可能更好)?
相关分类