在一个目录下,我已经定义了以下文件A.java:创建非公共类外包装的对象
package test;
public class A {}
class B {
public void hello() {
System.out.println("Hello World");
}
}
从不同的目录,如果我做到以下几点:
import test.B;
public class X {
public static void main(String [] args) {
B b = new B();
b.hello();
}
}
和编译javac X.java
,我得到以下错误:
X.java:2: test.B is not public in test; cannot be accessed from outside package
import test.B;
^
X.java:7: test.B is not public in test; cannot be accessed from outside package
B b = new B();
^
X.java:7: test.B is not public in test; cannot be accessed from outside package
B b = new B();
^
我不能改变PAC来源凯奇测试。我该如何解决这个问题?
你尝试过什么? B是A的非静态内部类,因此至少需要A的实例来创建B的实例。但是,您的B类在测试包外部不可用,所以我不确定你想在这里做什么。 – 2014-10-09 13:39:04
事实上,我正在尝试的东西很蹩脚,但对于我正在试验的东西来说是必要的。用反思的答案给了我一个合理的解决方案。谢谢! – user1539577 2014-10-09 17:23:35
反射在这种情况下是疯狂的,但okie dokie! – 2014-10-09 17:24:48