如何以编程方式导入Java类

xel*_*urg 5 java reflection

在Java中有一种方法可以以编程方式导入一个类,因为它的全名是String(例如"com.mydummypackage.MyClass")吗?

Jas*_*hen 15

如果通过"import"表示"加载Class对象以便可以运行反射方法",则使用:

Class<?> clazz = Class.forName( "com.mypackage.MyClass" );
Run Code Online (Sandbox Code Playgroud)

(我们读者对您的单词"import"感到困惑的原因是,通常这是指在importJava类文件顶部附近使用的关键字,用于告诉编译器如何扩展类名,例如import java.util.*;).


Cal*_*inR 6

Java文档是这方面的一个很好的知识来源,我建议你阅读类对象文档,可以在这里找到:http: //java.sun.com/j2se/1.4.2/docs/api/的java /郎/ Class.html

正如Jason Cohen的回答中所提到的,您可以使用以下代码行加载一个Class对象,然后创建该类的实例,您将执行Class对象的newInstance方法,如下所示:

Class<?> clazz = Class.forName( "com.mypackage.MyClass" );
Object o = clazz.newInstance();
Run Code Online (Sandbox Code Playgroud)