ibatis를 쓸려다보니 resultMapping을 할때마다 하나하나 써줘야 하는 번거로움을 찾다보니,
작성된 Model Class로 뭔가 만들어보면 좋치 않을까해서 찾다보니
reflection 이 있더라.
이것도 입맞에 맞게 사용 할 수 있는 방법이 여러가지인것같다.
결론부터 말하자면.
true로 주면 이상없이 접근 가능.(학교 선배가 알려줘서 쉬웠다 하핳핳)
자 그럼 통으로 적어볼까,
public static void main(String []args){
LoginDTO logdto = new LoginDTO();
Class cls = logdto.getClass();
List<String> fieldname = new ArrayList<String>();
for(Field f:cls.getDeclaredFields()){
fieldname.add(f.getName());
}
for(String name : fieldname){
System.out.println(name);
}
}
}
* setAccessible(true)로 선언하고 field값에 접근하기.
import java.util.ArrayList;
import java.util.List;
import com.hynix.ecms.login.model.LoginDTO;
/**
*
* @author ahn
*
*/
public class MappingItem {
@SuppressWarnings("unchecked")
public static void main(String []args){
LoginDTO logdto = new LoginDTO();
Class cls = logdto.getClass();
List<String> fieldname = new ArrayList<String>();
for (Field f : cls.getDeclaredFields()) {
fieldname.add(f.getName());
}
for (String name : fieldname) {
System.out.println("field Name: " + name);
}
Field field = null;
try {
field = cls.getDeclaredField("code");
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
System.out.println("code Information :" + field);
System.out.println("field.getName() :" + field.getName());
System.out.println("code toString():" + field.toString());
System.out.println("old code Value :" + logdto.getCode());
/*
* private 로 선언 되어 있더라도 접근 가능 하도록 ...True
*/
field.setAccessible(true);
try {
field.set(logdto, "hahahaha");
} catch (IllegalArgumentException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
}
try {
System.out.println("field.get(code)" + field.get(logdto));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println("new code Value:" + logdto.getCode());
}
}
'JAVA' 카테고리의 다른 글
java component reference site (0) | 2011.03.31 |
---|---|
Date toString() reverse Date() (0) | 2010.12.02 |
JAVA Super Class , Overriding (0) | 2010.09.08 |
파일 입출력 (0) | 2010.08.23 |
(기타)톰켓 + 다이니믹 웹 (0) | 2010.08.23 |