一种使用字符串创建新类的方法

Era*_*ran 1 java reflection

我有一个带有类名的字符串,是否有一种方法(用Java编写)在创建该类的新实例时使用该字符串,以执行以下操作:
object obj = new dataInString.
所以dataInString是从字符串中解析出来的.

Pas*_*ent 5

你的意思是什么Class.forName(String)?引用该方法的javadoc:

返回Class与具有给定字符串名称的类或接口关联的对象.调用此方法相当于:

Class.forName(className, true, currentLoader)
Run Code Online (Sandbox Code Playgroud)

where currentLoader表示当前类的定义类加载器.

例如,以下代码片段返回Class名为的类的运行时描述符java.lang.Thread:

Class t = Class.forName("java.lang.Thread")
Run Code Online (Sandbox Code Playgroud)

调用forName("X")导致名为X的类被初始化.

然后,调用Class#newInstance()返回的Class(它必须有一个空的构造函数).

创建此Class 对象表示的类的新实例.该类被实例化,就像new 具有空参数列表的表达式一样.如果尚未初始化,则初始化该类.