0

我不知道如何定义我的疑问,所以如果问题已经被问到,请耐心等待。

假设我必须动态实例化一个对象。这个对象肯定是一个已知的、不可变的类A的子类的实例。我可以动态获取具体的实现类。

完全像我对目标类一无所知一样使用反射会更好,还是最好/可以做类似的事情:

A obj = (Class.forName("com.package.Sub-A")) new A();

在哪里Sub-A extends A?目的是避免反射开销时间......

4

1 回答 1

1

通常这是通过

Class.forName("com.package.Sub-A").getConstructor(param types).newInstance(param values)

并且为了避免反射覆盖,您只需缓存构造函数对象。

于 2012-07-11T09:01:31.653 回答