-参照検索で爆発か?
public @interface ReadOnly { } public @interface WriteOnly { } public class Person { @ReadOnly public String _name; public Person(String name) { _name = name; } } public class Main { public static void main(String[] args) { Person p = new Person("masataka"); System.out.println(p._name); // OK p._name = "kurihara" // ここでコンパイルエラー } }
上記のように、アノテーションでフィールドのアクセスコントロールのポリシーを設定すれば、それに従わないフィールドアクセスコードはすべてコンパイルエラーになるようにしてみたらどうだろう?Getter&Setterに因らず隠蔽ができる。ほか、Delphiチックなproperty/read/write/storedやC++チックなfriendとか考えた。
。。。結局、あまり本質的ではない。