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. 使用ゲッターとセッター
- 4. アレイのゲッターとセッター
- 5. スーパークラスのゲッターとセッター?
- 6. ゲッターとセッターのプロトタイプパターン
- 7. セッターとゲッターのエラー
- 8. セッターとゲッターのメッセージ
- 9. javascriptのゲッターとセッター
- 10. セッターとゲッター/クラス
- 11. インターフェイスとゲッター\セッター
- 12. Objective-C(コピー)プロパティ:セッターやゲッターのコピー?
- 13. @propertyとセッターとゲッター
- 14. DDDとゲッターとセッターの使用
- 15. セッター/ゲッターとのgetName()とアプリケーションエラー
- 16. cakephp OOPゲッターとセッター
- 17. 制御ゲッターとセッター
- 18. C#6ゲッターとセッター
- 19. モンゴイドモデルのセッターとゲッターをオーバーライド
- 20. ゲッターとセッターの代替品
- 21. ゲッターとセッターの説明は?
- 22. C++のゲッターとセッターの代わりに "プロパティ"のようなメソッド?
- 23. IEのJavascriptゲッター/セッター?
- 24. クラスプロパティ(Object.assign)のセッター/ゲッター?
- 25. Java Reflection - クラスのプロパティ(ゲッターとセッター)をリストする
- 26. 自動ゲッター/セッター
- 27. Doxygen除外ゲッターとセッター
- 28. ハードコーディングされたゲッターとセッター
- 29. AtomicIntegerと同期ゲッター/セッター
- 30. 独自のプロパティを持つオブジェクトプロパティにゲッターとセッターを使用する
Functional Programming(FP)は状態を維持するデータ構造を失望させます。そのため、Scalaスタイルは可能な限りsetterを回避しようとします。 – jwvh
ありがとうございました。 – jason
これらは不要です。valまたはvarを使用してください。ゲッターとセッターは自動的に作成され、シームレスに使用されます。 Javaにはこれがありませんので、手動で作成する必要があります。 – puhlen