반응형
클래스의 속성값들을 가져와서 그 이름과 맵핑시키는 자동화구현을 위해 만든것이다.
클래스를 넘길때 getClass() 를 실행하면 클래스 객체가 넘어간다.
class.getDeclaredMethods(); // 모든 메서드를 반환한다.
class.getDeclaredConstructors();// 모든 생성자를 반환한다.
class.getSuperClass(); // 상속받은 클래스를 반환한다.
다음 예제함수는 필드를 리스트로 반환한것이다.
private List allFileds(Class claz){
List fields = new ArrayList()
do {
fields.addAll(Arrays.asList(parent.getDeclaredFields()));
parent = parent.getSuperclass(); // 상속받은 클래스가 뭔지알아볼려는것
} whild (!parent.equals(Object.class))
return fields;
}
위의 함수를 써서 반환받은 리스트를 Iterator 변환후 Field 객체에 넣고 각 값들을 하나씩
꺼내쓸수있다. Field::getName() 필드명이 올것이고 Field::getType() 필드 타입이 올것이다.
List arrFields = arrFields(createOrder.getClass());
for (Iterator iter = arrFields.iterator(); iter.hasNext();){
Field field = (Fiels)iter.next();
field.setAccessible(true);
log.debug("Field name : "+ field.getName());
log.debug("Field Type : "+ field.getType());
field.setAccessible(false);
}
다른 함수 쓰임 예제이다.
Class cls = class.forName("클래스명")
Constructor[] cons = cls.getConsturctors(); // 생성자배열을 리턴한다.
Method[] method = cls.getMethod(); // 함수 배열을 리턴한다.
Field[] field = cls.getFields(); // 필드(멤버변수) 배열을 리턴한다.
반응형
'자바(JAVA)' 카테고리의 다른 글
제네릭(generic)을 통해 Java Collections 구현 (0) | 2008.08.02 |
---|---|
smtp 서버이용 메일보내기 (0) | 2008.07.29 |
Hibernate 입력관련 에러 (0) | 2008.07.24 |
spring 과 hibernate 연결 (0) | 2008.07.20 |
spring 에서 MS SQL JDBC 연동하기 (0) | 2008.07.19 |
전송받은 값이 한글이 깨질때 (0) | 2008.07.18 |
클래스 정보로 함수를 실행시키고 싶을때 (0) | 2008.07.18 |
javax.servlet.http.HttpServletRequest ; import 에러 (2) | 2008.07.13 |