我会尽量保持简单的问题:
我有以下实例:
MainClass mc = new ExtendingClass()
我想使用引用mc
创建一个全新的实例。
我在线阅读了多个页面,但没有找到合适的答案。
可以假设它会像这样看起来 〜(也许它会帮助你理解)。
MyClass mc2 = new mc.getBaseClass()
基本上结果应该与此相同:
MyClass mc2 = ExtendingClass()
但它允许我在运行时创建mc2
,因为它可以是各种扩展类的实例。
提前致谢。
答案 0 :(得分:1)
你可以尝试:
mc.getClass( ).newInstance( );
这当然仅在ExtendingClass
具有no-arg或默认构造函数时才有效。如果你想处理构造函数的参数,它会变得更复杂一些(例如,如果你有一个带String
的构造函数):
Constructor<ExtendingClass> constructor = mc.getClass( ).getConstructor(String.class);
constructor.newInstance("foo");