任意のJavaリフレクションを使用して(クラス、メソッドなどの)任意のプロパティを変更することは可能ですか? java reflection APIを使用してクラスメンバーを変更することはできますか?
-3
A
答えて
3
はい。リフレクションを使用してプライベートメンバーを編集することもできます。一部のライブラリとフレームワーク(たとえばHibernateとWicket)がこれを行います。あなたが本当に良い理由がない限り、私はあなた自身でこれを行うことをお勧めしません。
import java.lang.reflect.Field;
class Something {
private String name = "Hello";
public void printName() {
System.out.println(name);
}
}
public class Example {
public static void main(String[] args) throws Exception {
Something s = new Something();
s.printName();
Field field = s.getClass().getDeclaredField("name");
field.setAccessible(true);
field.set(s, "Goodbye");
s.printName();
}
}
+0
Thnkxを見たことがありますか?たとえそれが愚かなqstnだったとしても...私はjus tryinだった投稿:P –
2
BeanUtilsを見てください。これは、反射で直接作業することなくこれを行うことができます。はるかに簡単かつ少ない冗長:例と http://commons.apache.org/beanutils/
いくつかのより多くのドキュメント:あなたは本当に反射で手が汚れて取得したい場合を除きhttp://commons.apache.org/beanutils/v1.8.3/apidocs/org/apache/commons/beanutils/package-summary.html#package_description
、私は々BeanUtilsのような抽象化レイヤで動作することをお勧めします。
関連する問題
- 1. タイムラインバナー - APIを使用して変更することはできますか?
- 2. javaのクラスメンバーをループすることはできますか?
- 3. Javaのリフレクションを使用して静的な最終フィールドを変更することはできませんか?
- 4. powershellを使用してファイルエクスプローラビューを変更することはできますか?
- 5. Java POI APIを使用してxlsxファイルを変更する
- 6. Java Reflectionを使用してAndroidがプライベート静的最終フィールドを変更していますか?
- 7. Java Reflection Bad Practiceを使用していますか?
- 8. java Swing DnD apiを使用してmousePressedでドラッグを開始することはできますか?
- 9. Javaを使用してDLLを作成することはできますか?
- 10. 参照をクラスメンバーとして使用できないのはなぜですか?
- 11. 低レベルのAppengine Email APIを使用してインラインイメージを追加することはできますか? (java)
- 12. Javaで変数を使用して変数に名前を付けることはできますか?
- 13. Facebook APIとFacebook ConnectはJavaを使用していますか?
- 14. キュウリ+カピバラを使ってスタイルを変更することはできますか?
- 15. nimbus lafを使用してjspinnerの背景を変更することはできますか?
- 16. Javaを使用してオーディオ入力を変更しますか?
- 17. Javaを使用してexeリソースを変更しますか?
- 18. 保護クラスメンバーは、Javaのpublicクラスメンバーと同じようにアクセスできます。
- 19. Javaのループ内で変数名を変更することはできます
- 20. Reflectionを使ってパッケージ内のすべてのクラスを反復することはできますか?
- 21. Reflectionを使用してGUIDを文字列に変換する
- 22. フレックス質問:Flexでコンボボックスを使用してビュースタックを変更することはできますか?
- 23. 反射を使用してgetMethodsを順番に使用することはできますか?
- 24. この例ではReflectionを使用することが適切です
- 25. Hybrid maptypeをStyledMapTypeとして変更することはできますか?
- 26. WebServiceクライアントのJavaパッケージを変更することはできますか?
- 27. Javaの最終値を変更することはできますか?
- 28. グラフリアルタイムAPIを使用してリアルタイムステータスアップデートを取得することができます
- 29. javascriptを使用してhttpリクエストのヘッダーを変更することはできますか?
- 30. ブラウザの拡張機能を使用してiframeのリファラーを変更することはできますか?
なぜGoogleはいいですか? –
あなたは[ウェブ](http://docs.oracle.com/javase/tutorial/reflect/) – radimpe