我有点笨
import   java.util.*; 
 import   java.text.*; 
 import   java.lang.reflect.*;   
 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   c=obj.getClass(); 
 		if(c==String.class)    
 			return   (String)obj; 
 		if(c.isArray()) 
 		{ 
 			String   r=c.getComponentType()+ "[]{ "; 
 			for(int   i=0;i <Array.getLength(obj);i++) 
 			{ 
 				if(i> 0)   r+= ", "; 
 				Object   val=Array.get(obj,   i); 
 				if(c.getComponentType().isPrimitive())   r+=val; 
 				else   r+=toString(val); 
 			} 
 			return   r+= "} "; 
 		} 
 		String   r=c.getName(); 
 		do 
 		{ 
 		   r+= "[ "; 
 			Field[]   fields=c.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) 
 					{}  					  					 
 				} 
 			} 
 			r+= "] "; 
 			c=c.getSuperclass(); 
 		} 
 		while(c!=null); 
 		return   r; 
 	} 
 	private   ArrayList <Object>    visited=new   ArrayList <Object> (); 
 }     
 做了标记的那句话是什么意思呀
------解决方案--------------------就是说ArrayList visited中是否包含obj
------解决方案--------------------你是不是要问这个:ArrayList <Object>    
 解释: 
 在JDK1.5中,新增加了“泛型”的概念,楼主可自行搜索相关内容。   
 ArrayList <Object> 的意思可以加强ArrayList的类型检查。 
 比如:ArrayList <String> ,表示一个ArrayList中只能存在String类型的元素。 
------解决方案--------------------visited 在这个程序中就是垃圾代码,一点用处都没有,在ObjectAnalyzer只出现过三次:声明、测试、添加。而添加好后就什么都不做了。如果你没有把代码弄错的话,所有有关 visited 的行全部都可以删除。