【发布时间】:2013-02-18 20:16:36
【问题描述】:
请让我知道 java 中是否有 C# Type.GetType() 的等效语法。
和java中Activator.CreateInstance()的等效语法。
谢谢。
【问题讨论】:
标签: java
请让我知道 java 中是否有 C# Type.GetType() 的等效语法。
和java中Activator.CreateInstance()的等效语法。
谢谢。
【问题讨论】:
标签: java
Type.GetType() 等效项
使用Object.getClass() 或instanceof
Activator.CreateInstance() 等效
如果一个类有一个无参数的构造函数,那么从它的包限定类名创建一个对象通常使用Class.forName 和Class.newInstance 来完成,如下所示
Class clazz = Class.forName("test.Demo");
Demo demo = (Demo) clazz.newInstance();
如果类没有参数的构造函数,你必须使用下面的反射
Class<?> clazz = Class.forName(className);
Constructor<?> ctor = clazz.getConstructor(String.class);
Object object = ctor.newInstance(new Object[] { ctorArgument });
【讨论】:
您可能会实现类似使用 Java 反射的功能
Class c - object.getClass();
object.getClass().getConstructors()[0].newInstance(initargs);
【讨论】: