2012-03-30 6 views

答えて

3

はい。リフレクションを使用してプライベートメンバーを編集することもできます。一部のライブラリとフレームワーク(たとえばHibernateWicket)がこれを行います。あなたが本当に良い理由がない限り、私はあなた自身でこれを行うことをお勧めしません。

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のような抽象化レイヤで動作することをお勧めします。

関連する問題