1

クラス変数の暗黙的なゲッターとセッターを追加する計画があるかどうかは誰にもわかりませんか?

私は、これをすでに可能にしている現在の Scala コードについて考えています。次のようなもので、ゲッター/セッターを定義しない場合は値を使用しますが、値にゲッター/セッターを定義すると、直接変数呼び出しの代わりにそれを使用します。

class A{
    int value = 3;
}

class B{
    int value = 3;
    public int value(){
        return value;
    }
}

// in some method
A a = new A();
System.out.println(a.value); 
B b = new B();
System.out.println(b.value); // <-- no () for accessing value even though it uses the getter
4

4 に答える 4

9

Java自体ではありませんが、このProject Lombokがあります

于 2013-05-24T02:47:06.817 に答える
4

序文:多分私は間違っているかもしれませんが、質問は、http: //www.oracle.com/technetwork/java/javase/community/index.html にあるような Java プラットフォームのユーザー/開発者リストにより適しているかもしれません。

そこでは、より有意義な回答が得られ、憶測が減ると思います。

この件に関する私自身の見解は、JavaBeanモデルは確立されすぎて下位互換性のための重要な変更を認められず、Java カプセル化モデルはプライベート アクセスでフィールドを非表示にし、アクセサー/ミューテーターを提供するという概念に基づいているということです。

メンバーのみを公開したい場合は、単純にpublicにすることができます。

フィールドを自動アクセサー/ミューテーターメソッドに変換することは、言語にとって非常に大きな変更であり、ほとんど得られないのに多くの混乱を引き起こす可能性があります。

また、scala の選択は、均一なアクセスの原則のために、メンバー アクセスに対する根本的に異なるアプローチを意味することも考慮する必要があります。

于 2013-05-24T08:08:43.290 に答える