在java中,如何从另一个类的私有类访问公共方法?

在java中,如何从另一个类的私有类访问公共方法?,java,class,private,Java,Class,Private,我有一个问题,有没有办法从另一个类的私有类访问公共方法?例如,print方法可以从另一个类访问,因为该类是私有的 private class TestClass { public void print() { } } 有 实际上,您不会返回对私有类的直接引用,因为其他类不能使用它。而是扩展某个公共类,并将私有类作为该公共类的实例返回。然后可以调用它继承的任何方法 public interface Printable { void print(); } public c

我有一个问题,有没有办法从另一个类的私有类访问公共方法?例如,print方法可以从另一个类访问,因为该类是私有的

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

实际上,您不会返回对私有类的直接引用,因为其他类不能使用它。而是扩展某个公共类,并将私有类作为该公共类的实例返回。然后可以调用它继承的任何方法

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();

可以通过使用公共类扩展该类来实现这一点。或者你可以随时使用反射

为什么不自己尝试一下并不难:)print方法可以在任何TestClass对象上调用。实现这样一个对象的麻烦来了。但是当我尝试时,它说类的方法未定义。那么通过实现一个接口,我们可以创建一个链接,允许我们从私有类访问print方法?扩展私有类并访问它怎么样?是的,你也可以这样做,因为私有类的子类也将继承自私有类的超类。希望这不会像我一样让你困惑。哈哈,不,你真的很清楚一个例子,它帮助我更快地掌握它。谢谢你的帮助。