Java Reflect ·´Éä»úÖÆ ѧϰ±Ê¼Ç [ÍòÄÜtoString·½·¨]
ÀûÓÃJava Reflect»úÖÆ±àдÍòÄÜtoString()·½·¨:
package com.accp.test.filed;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
public class ObjectAnalyzer {
private List<Object> visited = new ArrayList<Object>();
public String toString(Object obj) {
if (obj == null)
return null; // Èç¹ûobjΪ¿Õ..·µ»Ønull
if (visited.contains(obj))
return "..."; // Èç¹ûvisitedÖÐÒѾ°üº¬obj,·µ»Ø...
visited.add(obj);
Class c1 = obj.getClass(); // µÃµ½ÔËÐÐʱ¶ÔÏó
if (c1 == String.class)
return (String) obj; // Èç¹ûc1ÊÇStringÀàÐÍ,Ö±½Óת»»
if (c1.isArray()) { // Èç¹ûÊÇÊý×éÀàÐÍ
String r = c1.getComponentType() + "[]{"; // µÃµ½¸ÃÊý×é×é¼þÀàÐ͵ÄClass
for (int i = 0; i < Array.getLength(obj); i++) {
if (i > 0)
r += ",";
Object var = Array.get(obj, i); // È¡µÃobj[i]ÔªËØµÄÖµ
if (c1.getComponentType().isPrimitive()) // Èç¹ûΪ»ù±¾ÀàÐÍ
r += var;
else
r += toString(var); // µÝ¹éµ÷ÓÃ
}
return r + "}";
}
String r = c1.getName(); // µÃµ½objÃû³Æ
// ¼ì²é±¾ÀàÓòºÍËùÓг¬ÀàÓò
do {
r += "[";
Field[] fields = c1.getDeclaredFields(); // µÃµ½±¾ÀàºÍ³¬ÀàËùÓÐÓò
AccessibleObject.setAccessible(fields, true); // ½«ËùÓÐÓòÉèÖÃΪ¿É·ÃÎʵÄ.
for (Field field : fields) {
if (!Modifier.isStatic(field.getModifiers())) {
if (!r.endsWith("["))
r += ",";
r += field.getName() + "=";
try {
Class type = field.getType(); // µÃµ½×Ö¶ÎÀàÐÍ
Object var =
Ïà¹ØÎĵµ£º
1.»ù±¾¸ÅÄîµÄÀí½â
¡¡¡¡¾ø¶Ô·¾¶£º¾ø¶Ô·¾¶¾ÍÊÇÄãµÄÖ÷Ò³ÉϵÄÎļþ»òĿ¼ÔÚÓ²ÅÌÉÏÕæÕýµÄ·¾¶£¬(URLºÍÎïÀí·¾¶)ÀýÈ磺
C:\xyz\test.txt ´ú±íÁËtest.txtÎļþµÄ¾ø¶Ô·¾¶¡£http://www.sun.com/index.htmÒ²´ú±íÁËÒ»¸öURL¾ø¶Ô·¾¶¡£
¡¡¡¡Ïà¶Ô·¾¶£ºÏà¶ÔÓëij¸ö»ù׼Ŀ¼µÄ·¾¶¡£°üº¬WebµÄÏà¶Ô·¾¶£¨HTMLÖеÄÏà¶ÔĿ¼£©£¬ÀýÈ磺ÔÚSer ......
JavaµÄºËÐÄAPIÊǷdz£ÅÓ´óµÄ,Õâ¸ø¿ª·¢ÕßÀ´Ëµ´øÀ´Á˺ܴóµÄ·½±ã£¬¾³£ÈËÓÐÆÀÂÛ,javaÈóÌÐòÔ±±äɵ¡£
µ«ÊÇһЩÄÚÈÝÎÒÈÏΪÊDZØÐëÕÆÎյ쬷ñÔò²»¿ÉÒÔÊìÁ·ÔËÓÃjava£¬Ò²²»»áʹÓþͺÜÄѰìÁË¡£
1¡¢java.lang°üϵÄ80£¥ÒÔÉϵÄÀàµÄ¹¦ÄܵÄÁé»îÔËÓá£
2¡¢java.util°üϵÄ80£¥ÒÔÉϵÄÀàµÄÁé»îÔËÓã¬ÌرðÊǼ¯ºÏÀàÌåϵ¡¢Õý¹æ±í´ïʽ¡¢Ê±¼ä¡ ......
Java³ÌÐòÔ±µ½¼Ü¹¹Ê¦µÄÍÆ¼öÔĶÁÊé¼®ÊÕ²Ø
Ò»¡¢Java±à³ÌÈëÃÅÀà
¶ÔÓÚûÓÐJava±à³Ì¾ÑéµÄ³ÌÐòÔ±ÒªÈëÃÅ£¬Ëæ±ã¶ÁʲôÈëÃÅÊé¼®¶¼Ò»Ñù£¬Õâ¸ö½×¶ÎÐèÒªÄã¿ìËÙµÄÕÆÎÕJava»ù´¡Óï·¨ºÍ»ù±¾Ó÷¨£¬×ÚÖ¼¾ÍÊÇ“àñàðÍÌÔæ²»ÇóÉõ½â”£¬ÏȶÔJavaÊìϤÆðÀ´ÔÙ˵¡£Óú̵ܶÄʱ¼ä¿ìËÙ¹ýÒ»±éJavaÓï·¨£¬Á¬ã´ø²Â¶àдд´úÂ룬Ҫ“ÖªÆäÈ»&r ......
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutpu ......
Ò»¡¢±³¾°
1¡¢µ±ÎÒÃǵÚÒ»´Î½Ó´¥Ä³¶Î´úÂ룬µ«ÓÖ±»ÒªÇóÔÚ¼«¶ÌµÄʱ¼äÄÚÓÐЧµØ·ÖÎöÕâ¶Î´úÂ룬ÎÒÃÇÐèҪʲôÑùµÄ×¢ÊÍÐÅÏ¢£¿
2¡¢ÔõôÑù±ÜÃâÎÒÃǵÄ×¢ÊÍÈß³¤¶øÇÒÁèÂÒ²»¿°ÄØ£¿
3¡¢ÔÚ¶àÈËÐͬ¿ª·¢¡¢Î¬»¤µÄ½ñÌ죬ÎÒÃÇÐèÒªÔõôÑùµÄ×¢ÊÍÀ´±£Ö¤¸ßÖÊ¡¢¸ß½»µÄ½øÐпª·¢ºÍά»¤¹¤×÷ÄØ£¿
¶þ¡¢ÒâÒå
³ÌÐòÖеÄ×¢ÊÍÊdzÌÐòÉè¼ÆÕßÓë³ÌÐòÔĶÁÕß ......