Beanアノテーションを使用して、クラスの変数にセッターとゲッターを取得します。 しかし、Javaのようなgetterとsetterを使うためのスケーラプログラミングの良い習慣はありますか?現実世界の多くのプログラマーがScalaのBeanアノテーションを使用しているかどうかを知ろうとしています。ゲッターとセッター用のスカラーのBeanプロパティ
1
A
答えて
0
Scalaは既にフィールド用のゲッターとセッターを自動的に作成します。フィールドは決して公開されていないからです。代わりに、すべてのフィールドはプライベートであり、ゲッターdef <fieldname>: <fieldtype>
が作成されます。フィールドがvar
の場合は、セッターdef <fieldname>_=(new: <fieldtype>): Unit
が作成されます。 getterメソッドにはパラメータリストがないため、その使用法はJavaフィールドへのアクセス(obj.field
)のように見えますが、そうではありません。 Scalaは_=
で終わるメソッドのために砂糖を紹介し、x.y = z
という表記法で呼び出すことができます。これはx.y_=(z)
と同じです。このようなメソッドを手動で作成して、同じ動作を確認することができます。 (警告:手動で定義されたメソッドx_=
意志ゲッターx
も存在しない限りない砂糖。)
(Boolean
)BeanProperty
の機能は、単に標準のJavaビーンの方法で指定されたこれらのメソッドにエイリアスを追加することです(getX
/isX
およびsetX
)。したがって、純粋なScalaでは不要ですが、何らかの理由でJava標準に準拠する必要がある場合に便利です。例えば。 Beanのプロパティに反射的にアクセスするライブラリを使用します。
関連する問題
- 1. 目的C - enumのゲッターとセッターのプロパティ
- 2. プロパティの振る舞い(ゲッターとセッター)、
- 3. C#:配列プロパティのゲッターとセッター式
- 4. 使用ゲッターとセッター
- 5. ES6:JSゲッターとセッターを使用したオブジェクトとそのプロパティ
- 6. スーパークラスのゲッターとセッター?
- 7. ゲッターとセッターのメソッド
- 8. Scalaのセッターとゲッター
- 9. javascriptのゲッターとセッター
- 10. ゲッターとセッターのプロトタイプパターン
- 11. セッターとゲッターのメッセージ
- 12. アレイのゲッターとセッター
- 13. セッターとゲッターのエラー
- 14. インターフェイスとゲッター\セッター
- 15. セッターとゲッター/クラス
- 16. Objective-C(コピー)プロパティ:セッターやゲッターのコピー?
- 17. @propertyとセッターとゲッター
- 18. DDDとゲッターとセッターの使用
- 19. セッターとゲッターとサブクラスのトラブル
- 20. セッター/ゲッターとのgetName()とアプリケーションエラー
- 21. C#6ゲッターとセッター
- 22. 同期ゲッターとセッター
- 23. 角2セッターとゲッター
- 24. 制御ゲッターとセッター
- 25. cakephp OOPゲッターとセッター
- 26. セッター/ゲッターとencapusulation JavaIndexoutbounds
- 27. モンゴイドモデルのセッターとゲッターをオーバーライド
- 28. AngularJS、ゲッターとセッターのラジオボタン
- 29. 列挙型のセッターとゲッター
- 30. モデルオブジェクトのゲッターとセッター(角4)
Functional Programming(FP)は状態を維持するデータ構造を失望させます。そのため、Scalaスタイルは可能な限りsetterを回避しようとします。 – jwvh
ありがとうございました。 – jason
これらは不要です。valまたはvarを使用してください。ゲッターとセッターは自動的に作成され、シームレスに使用されます。 Javaにはこれがありませんので、手動で作成する必要があります。 – puhlen