私はセッターメソッドを持たないクラスにリスト変数を持っています。リストオブジェクトの値を設定できる方法はありますか?Javaクラスのセッターメソッドを持たない設定値
-2
A
答えて
0
属性がpublic
の場合、このようにアクセスできます。あなたの属性がprotected
の場合、そのクラスはあなたのクラスと同じパッケージになければなりません。
obj.value = newValue;
それはあなたがrefelctionでそれを行うことができますprivate
です。
3
あなたは、メソッドの内部で、のように、クラス自体にあり、変数は、この使用し、その後、private
、public
、またはprotected
をマークされている場合:フィールドがpublic
ある場合
m_name = value;
を、そしてあなたクラス外部からのアクセスを必要とし、その後、実行します。もちろん
classinstance.m_name = value;
を使用すると、変数は、クラスのインスタンス化で構築する必要がある場合は、コンストラクタ内で、リストのインスタンス化コードを配置する必要があります。その後、再び、あなたはこのようにリフレクションを使用することができます:それは間違いなく、カプセル化を壊すので、
import java.lang.reflect.Field;
ClassName classInstance = new ClassName();
Field member_name = classInstance.getClass().getDeclaredField("private_var_name");
// this is for private scope
member_name.setAccessible(true);
variableName.set(x, /*value*/);
はもちろん、私は、上記を行うことはお勧めしません、それは、よりクリーンなコードよりもハックのようになります。
(Source)
関連する問題
- 1. デフォルトのコンストラクタを持たないJavaクラス
- 2. 編集クラスせずに新しいクラス変数のJava +ゲッター/セッターメソッドを追加
- 3. セレンのJava webdriverを持たないNoClassDefFoundError:ORG/apacheの/ HTTP /設定/ RegistryBuilder
- 4. jspの非表示フィールドにJavaクラスの定数値を設定
- 5. 値を持たない整数(intを値に設定しない)
- 6. セッターメソッドを使用して<Object>に値を設定する方法
- 7. Javaで多重継承を持たないクラス階層を設計する
- 8. JavaクラスのObject値をJSPに設定するPage
- 9. Javaリフレクションを使用した設定値
- 10. 別のクラスのセッターメソッドへのアクセス
- 11. Java Spring - 注釈設定クラス
- 12. 設定クラスと値(Railsの)
- 13. クラスのPHP設定値
- 14. Intent.putExtraで設定した値が維持されない
- 15. 設定値は、私がテストを持っていたいもの
- 16. ルーターでattr_accessorを使用してセッターメソッドを生成するときに動的な値を設定する
- 17. パッケージ構造を持たないJavaクラスを実行
- 18. java serialization - クラス定義を維持する
- 19. クラスの値を設定するには
- 20. JSON設定GULPを持つtoTypeScriptクラス
- 21. Java設定VideoCapture.set(CAP_PROP_FOURCC、コーデック値)
- 22. ホバリング時にアクティブなクラスを設定し、アクティブなクラスを維持する
- 23. 状態を持つ指定されたArticleクラスの設計システム
- 24. そのセッターメソッドを介してフィールドを設定するには、Javaリフレクションを使用して
- 25. はそれが右のプロジェクト設定を維持するために設定PHPクラスを設定しますか?
- 26. XtendクラスをJavaクラスのスーパークラスとしてプログラムで設定する
- 27. Java - 階層を持つ設定/情報
- 28. 子クラスを持ち、親クラスを持たないOOPのクラスの名前?
- 29. キャッシュを持たないようにMVC設定ファイルを設定する方法
- 30. 他のクラスのMainActorクラスの設定値を使用
クラス変数を設定/初期化する最も良い方法は、コンストラクタを使用することです。 – Ezio