2010. 7. 5. 14:25
흠. 가끔 Object를 파라미터로 넘길 때 각 필드값에 Null 이 들어가면 안될 경우가 생간다. 매번 object.setField("") 이런식으로 값을 초기화 시키기 귀찮으면 java refection 기능을 응용해서 작업해도 좋을 듯 싶다.
replaceNull()
- object의 선언된 필드만 가지고 와서 Null 값을 체크한다. 값에 null 이 있으면 "" 로 초기화 한다.
- object의 선언된 필드만 가지고 와서 Null 값을 체크한다. 값에 null 이 있으면 "" 로 초기화 한다.
public static void replaceNull(Object obj) throws Exception {
try {
Class dymClass = obj.getClass();
Field[] fields = dymClass.getDeclaredFields();
for(int i = 0;i<fields.length;i++) {
String methodName = "get" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());
Method method = obj.getClass().getMethod(methodName, null);
String value = (String)(method.invoke(obj, null) + "");
if("null".equals(value)) {
value = "";
String setMethodName = "set" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());
Method setMethod = obj.getClass().getMethod(setMethodName, new Class[]{String.class});
setMethod.invoke(obj, new Object[]{value});
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
throw e;
}
}
try {
Class dymClass = obj.getClass();
Field[] fields = dymClass.getDeclaredFields();
for(int i = 0;i<fields.length;i++) {
String methodName = "get" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());
Method method = obj.getClass().getMethod(methodName, null);
String value = (String)(method.invoke(obj, null) + "");
if("null".equals(value)) {
value = "";
String setMethodName = "set" + fields[i].getName().substring(0, 1).toUpperCase() + fields[i].getName().substring(1, fields[i].getName().length());
Method setMethod = obj.getClass().getMethod(setMethodName, new Class[]{String.class});
setMethod.invoke(obj, new Object[]{value});
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
throw e;
}
}
'java > util' 카테고리의 다른 글
[InputStream] - String to InputStream (1) | 2010.10.13 |
---|---|
[util] - byte to hex string (0) | 2010.09.07 |
[java] - File readLine (2) | 2010.07.01 |
[java] - File read (0) | 2010.07.01 |
[java] - byte array to image (0) | 2010.06.30 |