私はの動作をテストしようとしていて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
か?
編集:プライベート内部クラスがある場合、同じ状況は発生しないことを追加したいだけです。内部クラスのプライベート変数は公開されません。