在Java中,是否有一种以编程方式导入类的方法,只需提供其完整名称作为字符串(例如像"com.mydummypackage.MyClass")?
如果你所说的“导入”是指“加载一个Class
对象以便运行反射方法”,那么使用:
Class<?> clazz = Class.forName( "com.mypackage.MyClass" );
我们读者对于你使用的“import”一词感到困惑的原因是,通常这个词指的是 Java 类文件顶部用来告诉编译器如何扩展类名的 import
关键字,例如 import java.util.*;
。
Class<?> clazz = Class.forName( "com.mypackage.MyClass" );
Object o = clazz.newInstance();
不要将“import”与类加载混淆。
导入语句并不会加载任何内容。它所做的只是使你无需输入完整的类名称。如果你导入了foo.bar.Baz,你可以在代码中引用类Baz而不必拼写它。这就是导入的全部含义。