리플렉션을 사용하여 런타임에 값 객체 속성을 설정하고 있습니다. 모든 것이 문자열이라면이 질문을하지 않을 수도 있지만 그렇지 않습니다. json을 반환하는 웹 서비스가 있고 객체를 채우기 위해 서비스에서 반환 된 json을 사용하려고합니다. json 문자열에 정렬 된 키가 들어있는 alphabeticalKeys라는 ArrayList라는 문자열이 있습니다. 여기에 내가 동적 객체 (사용자)를 채우는 데 사용하고있는 코드입니다 : JSON 데이터 세트에서리플렉션을 사용하여 유형을 알 수없는 속성 값을 설정할 수 있습니다.
for(String fieldName : alphabeticalKeys){
Log.d("JSON:" + fieldName, json.getString(fieldName));
Field f = userClass.getDeclaredField(fieldName);
f.setAccessible(true);
f.set(user, jsonObject.get(fieldName));
}
, 문자열, 두 배 더있다. 이것은 반환되는 객체 유형이 컴파일 타임에 알려지지 않은 팩토리 클래스의 일부입니다. 또한 json 필드의 데이터 유형은 필요한 객체의 유형에 따라 다를 수 있습니다.
json 출력은 반환 된 개체의 필드 이름과 일치하므로 json 출력에서 반환 된 다른 데이터 형식을 처리 할 수있는 방법을 찾고 있습니다. 누군가 제안 할 수 있습니까?
Thx! Vivian
http://docs.oracle.com/javase/tutorial/reflect/member/fieldTypes.html –