<< 2010년 2월 8일 (월) | | 2010년 2월 10일 (수) >>

toString 클래스 유틸리티 샘플

toString()자동으로 만들어주는 소스들이 많지만 그 중 하나를 소개해 드립니다. 심플하고 쉽게 활용이 가능하여 공유합니다.

1. ClassUtils 샘플

package client;

import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public class ClassUtils
{
private ClassUtils() {
}

public static String toString(Object o)
{
String ret = null;
List<Object> list = null;

try {
list = new ArrayList<Object>();
ClassUtils.toString(o, o.getClass(), list);
ret = o.getClass().getName().concat(list.toString());
} catch (Exception e) {
e.printStackTrace();
ret = null;
}
return ret;
}

private static void toString(Object o, Class<?> clazz, List<Object> list)
{
Field[] f = null;
try {
f = clazz.getDeclaredFields();
AccessibleObject.setAccessible(f, true);
for (int i = 0; i < f.length; i++) {
list.add(f[i].getName() + "=" + f[i].get(o));
}
if (clazz.getSuperclass().getSuperclass() != null)
toString(o, clazz.getSuperclass(), list);
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. 테스트  샘플

package client;

public class ClassUtilsClient
{
public String hello = "Test";
public int i = 9999;

public static void main(String... args) {
System.out.println(ClassUtils.toString(
new ClassUtilsClient()));
}
}
3. 테스트 결과
client.ClassUtilsClient[hello=Test, i=9999]

[관련포스트]
 
태그 :