4

我只是有一个问题,有没有办法从另一个类的私有类中访问公共方法?例如,由于该类是私有的,因此可以从不同的类访问 print 方法?

private class TestClass {
    public void print() {
    }
}
4

2 回答 2

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();
于 2013-08-01T22:38:24.603 回答
0

您可以通过使用公共类扩展该类来做到这一点。或者你总是可以使用反射!

于 2013-08-01T22:53:34.287 回答