import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
public class Reflection {
public static void main(String[] args) {
String str = "myString";
HashMap<String, String> map = new HashMap<String, String>();
BizDto biz = new BizDto();
biz.setUserNm("홍길동");
biz.setUserpw("1234");
ArrayList<Object> arr = new ArrayList<Object>();
arr.add(map);
arr.add(biz);
arr.add(str);
for(Object o : arr ) {
if (o instanceof String ) {
System.out.println("String " + o.toString());
} else if (o instanceof Integer) {
System.out.println("String " + o.toString());
} else if (o instanceof HashMap) {
System.out.println("hash map");
} else {
Class<? extends Object> clazz = o.getClass();
String ClassName = clazz.getName();
Method[] methods = clazz.getMethods();
for(Method m : methods) {
String methodName = m.getName();
if(m.getName().indexOf("get") != -1 ) {
if(methodName.startsWith("get")
&& methodName.toLowerCase().indexOf("dto") == -1
&& methodName.toLowerCase().indexOf("entity") == -1
&& !methodName.equalsIgnoreCase("getClass") ) {
try {
Object value =m.invoke(o);
System.out.println("class : " + ClassName + ", methodName : " + methodName + ", value : " + value.toString());
}
catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
} // end if
}
}
}
class BizDto implements java.io.Serializable {
private static final long serialVersionUID = 4347186401362125996L;
private String usernm = "";
private String userpw = "";
public void setUserNm(String _usernm) {
this.usernm = _usernm;
}
public String getUsernm() {
return this.usernm;
}
public void setUserpw(String _userpw) {
this.userpw = _userpw;
}
public String getUserpw() {
return this.userpw;
}
}
'프로그램 언어 > 자바' 카테고리의 다른 글
Https 파일 다운로드 샘플 (0) | 2016.04.14 |
---|---|
[POI] 셀타입 통화로 만들 때. (0) | 2015.10.12 |
자바 어플리케이션(jar)을 실행파일(exe)로 만들기 :: launch4j (0) | 2013.04.18 |
JVM Options (0) | 2013.04.15 |
숫자를 한글자리수로 표현 (0) | 2013.02.25 |