-参照検索で爆発か?

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とか考えた。
。。。結局、あまり本質的ではない。