我只是有一个问题,有没有办法从一个来自不同类的私有类访问公共方法?例如,可以从不同的类访问print方法,因为该类是私有的?
private class TestClass {
public void print() {
}
}
答案 0 :(得分:4)
是的。
您实际上并没有返回对私有类的直接引用,因为其他类不能使用它。相反,您扩展了一些公共类,并将您的私有类作为该公共类的实例返回。然后可以调用它继承的任何方法。
public interface Printable {
void print();
}
public class Test {
public Printable getPrintable() {
return new PrintTest();
}
private class PrintTest implements Printable {
public void print() {
}
}
}
Test test = new Test();
test.getPrintable().print();
答案 1 :(得分:0)
您可以通过使用公共类扩展该类来实现。或者你总是可以使用反射!