com.g0software.auxiliary.reflect.ReflectionUtil Maven / Gradle / Ivy
package com.g0software.auxiliary.reflect;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
/**
*
* @author hanoseok
*
*/
public class ReflectionUtil {
private static ThreadLocal> stack = new ThreadLocal>();
@SuppressWarnings({ "rawtypes", "unchecked" })
private static final List LEAVES = Arrays.asList(
Boolean.class, Character.class, Byte.class, Short.class,
Integer.class, Long.class, Float.class, Double.class, Void.class,
String.class);
/**
* 객체 정보를 Recursive 하게 reflection 한다.
* 큰 객체는 성능저하를 가지고 올 수 있으며,
* StackOverFlow 가 발생할 수 있을 가능성이 있으니,
* 주의해서 사용해야 한다.
* @param o
* @return
*/
public static String toStringRecursive(Object o) {
try{
List