⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objectanalyzertest.java

📁 JAVA继承的例子
💻 JAVA
字号:
import java.lang.reflect.*;
import java.util.*;

public class ObjectAnalyzerTest
{
    public static void main(String[] args)
    {
        ArrayList<Integer> squares=new ArrayList<Integer>();
        for(int i=1;i<=5;i++)
            squares.add(i*i);
        System.out.println(new ObjectAnalyzer().toString(squares));
    }
}

class ObjectAnalyzer
{
    public String toString(Object obj)
    {
        if(obj==null) return "null";
        if(visited.contains(obj)) return"...";
        visited.add(obj);
        Class c1=obj.getClass();
        if(c1==String.class) return (String) obj;
        if(c1.isArray())
        {
            String r=c1.getComponentType()+"[]{";
            for(int i=0;i<Array.getLength(obj);i++)
            {
                if(i>0) r+=",";
                Object val=Array.get(obj,i);
                if(c1.getComponentType().isPrimitive()) r+=val;
                else r+=toString(val);
            }
            return r+"}";
        }
        
        String r=c1.getName();
        do
        {
            r+="{";
            Field[] fields=c1.getDeclaredFields();
            AccessibleObject.setAccessible(fields,true);
            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+="J";
            c1=c1.getSuperclass();
        }
        while(c1!=null);
        return r;
    }
    
    private ArrayList<Object>visited=new ArrayList<Object>();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -