假设我们有一个位于project
文件夹的项目,其中的来源为project/src
。
我们在package
和类
project/src/package
TopClass
和中project/src/TopClass.java
{li> PackageClass
project/src/package/PackageClass.java
。现在我们要在TopClass
内部唤起PackageClass
的构造函数,但是构造函数(虽然声明为public
)似乎在包内不可见。
我们需要以某种方式导入它吗?我们怎样才能访问它?
答案 0 :(得分:1)
指定从未命名的包导入类型是编译时错误。
因此,为了实现您想要做的事情,您必须使用某种间接类访问,例如反思API:
Class sampleClass = Class.forName("SampleClass");
Method sampleMethod = sampleClass.getMethod("sampleMethod" , new Class[] { String.class });
sampleMethod.invoke(sampleClass.newInstance(), "It works!");
使用默认包类:
public class SampleClass {
public void sampleMethod(String str) {
System.out.println(str);
}
}