2015-01-26 2 views
-1

클래스를 찾고 인스턴스화하는 패키지를 반복하고 있지만 공개 필드에 값을 할당 할 수 있기를 원하면 어떻게해야합니까?Java 클래스 인스턴스 객체의 필드에 값을 할당하십시오.

패키지를 통해 반복하면서 객체를 코드에 클래스로 캐스팅하지 않아도되므로 obj와 같은 작업을 수행 할 수 있습니다. getDeclaredFields()? 어떻게 든 이것을 사용합니까?

public class Test { 
    public String a; 
    public int b; 
} 

Class myClass = Class.forName("Test"); 
Object obj = myClass.getInstance(); //This is what I have so far 
obj.a = "test"; 
obj.b = 1;  // I need something like this 


Test t = (Test)obj; // I dont want to have to do this as the next step 

고마워요!

+0

'myClass.getDeclaredFields()'? –

+0

또한 BeanHelper를 사용하면 메서드와 [속성]을 반복 할 수 있습니다 (http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/org/apache/commons/). beanutils/PropertyUtils.html # describe % 28java.lang.Object % 29)를 설정하고 가져 오거나 가져 오십시오. – eckes

답변

0

무엇에 대해 :

try { 
    myClass.getDeclaredField("a").set(obj, "test"); 
    myClass.getDeclaredField("b").setInt(obj, 1); 
} catch (NoSuchFieldException e) { 
    // Whatever needs to be done 
} 
관련 문제