我有一个抽象类A
,其中有一个名为public int get(int x, int y)
的方法。
类B
,C
,D
有1个方法都是相同的,它们会扩展到抽象类A
。
在类Car
中,Car
构造函数接收String参数type
,该参数应该用于决定B
,C
,{{D
中的哪一个1}}必须在课堂上使用。
显然,我正在使用基于if...else
的{{1}}条件语句来执行此操作。
所以代码看起来像
type
是否有任何优雅的方法可以使用字符串参数来决定使用3个类中的哪一个?
答案 0 :(得分:2)
您可以在构造函数中使用接口/抽象类作为参数,而不是使用String。
public Car(A a) { this.a = a; }
然后在其他地方:
B b = new B();
new Car(b);
答案 1 :(得分:1)
您可以使用Class.forName(String)
获取Class
对象,然后使用newInstance()