如何使用带有java反射且不带开关的parant引用创建子类
我有一个a类,它是AB类、AC类和AD类的分支。a类也有枚举字段“type”,它 可以是“A”\“AB”\“AC”\“AD”。 那么,如何用java反射替换这个开关呢
public A f(Type type){
A a;
switch (type){
case A:
a = new A();
break;
case AB:
a = new AB();
break;
case AC:
a = new AC();
break;
case AD:
a = new AD();
break;
}
}
```
# 1 楼答案
显然,你的
switch
语句应该创建一个给定类型的新对象(ofaa
)。为了支持这一点,你根本不需要反思。你可以用然后,您可以轻松创建一个新对象,如
为了完整性,可以使用反射,比如
但是编译器将迫使您处理几个潜在的异常,因为在运行时可能会出现很多错误,而在编译时无法检查这些错误