我试图测试工作private interfaces并编写下面的代码。private interfaces我可以理解,如果我们不希望任何其他类实现它们,可能会出现声明的情况,但是变量呢?接口变量是隐式的public static final,因此即使接口被声明为私有,我也能够访问它们。这可以在下面的代码中看到。
public class PrivateInterfaceTest {
/**
* @param args
*/
public static void main(String[] args) {
TestingInterfaceClass test = new TestingInterfaceClass();
TestingInterfaceClass.inner innerTest = test.new inner();
System.out.println(innerTest.i);
}
}
class TestingInterfaceClass {
private interface InnerInterface {
int i = 0;
}
class inner implements InnerInterface {
}
}
这是否意味着我们永远无法private interface真正意义上的拥有?private interface如果我们可以访问外部变量,是否真的有意义private interface?
编辑:如果我们有私有内部类,只是想添加同样的情况。内部类中的私有变量永远不会暴露。