zoukankan      html  css  js  c++  java
  • Java code lib 输出对象所有属性值

        /**
         * Converts an object to a string representation that lists all fields;
         * @param obj an object
         * @return a string with the object's class name and all filed names and values
         */
        public String toString(Object obj) {
            if(obj ==null) return "null";
            if(visited.contains(obj)) return "...";
            visited.add(obj);
            Class cl=obj.getClass();
            //String
            if(cl==String.class) return (String) obj;
            //Array
            if(cl.isArray()){
                String r=cl.getComponentType()+"[]{";
                for(int i=0;i< Array.getLength(obj);i++){
                    if(i>0) r+=",";
                    Object val=Array.get(obj,i);
                    if(cl.getComponentType().isPrimitive()) r+=val;
                    else r+=toString(val);
                }
                return r+"}";
            }
    
            String r=cl.getName();
            //inspect the fields of this class and all superclass
            do{
                r+="[";
                Field[] fields=cl.getDeclaredFields();
                AccessibleObject.setAccessible(fields,true);
                //get the names and values of all fields
                for(Field f:fields){
                    if(!Modifier.isStatic(f.getModifiers()))
                    {
                        if(!r.endsWith("["))r+=",";
                        r+=f.getName()+"=";
                        try
                        {
                            Class t=f.getType();
                            Object val=f.get(obj);
                            if(t.isPrimitive()) r+=val;
                            else  r+=toString(val);
                        }
                        catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }
                r+="]";
                cl=cl.getSuperclass();
            }
            while (cl!=null);
            return r;
        }
  • 相关阅读:
    使用JSONPath
    JSON 返回值JSONPath Syntax
    IntelliJ IDEA 打包Maven 构建的 Java 项目
    JMeter(7) 优化判断返回类型和返回值
    Windows copy
    Windows del
    Windows exit
    Windows netsh
    Windows start
    Windows taskkill
  • 原文地址:https://www.cnblogs.com/lvjianwei/p/8336045.html
Copyright © 2011-2022 走看看