2016-06-22 56 views
-1

我在Java中很新,我试图测试从Stack Overflow本身获得的Java反射示例。Java反射示例

public static String dump(Object o, int callCount) { 
    callCount++; 
    StringBuffer tabs = new StringBuffer(); 
    for (int k = 0; k < callCount; k++) { 
     tabs.append("\t"); 
    } 
    StringBuffer buffer = new StringBuffer(); 
    Class oClass = o.getClass(); 
    if (oClass.isArray()) { 
     buffer.append("\n"); 
     buffer.append(tabs.toString()); 
     buffer.append("["); 
     for (int i = 0; i < Array.getLength(o); i++) { 
      if (i < 0) { 
       buffer.append(","); 
      } 
      Object value = Array.get(o, i); 
      if (value.getClass().isPrimitive() 
        || value.getClass() == java.lang.Long.class 
        || value.getClass() == java.lang.String.class 
        || value.getClass() == java.lang.Integer.class 
        || value.getClass() == java.lang.Boolean.class) { 
       buffer.append(value); 
      } else { 
       buffer.append(dump(value, callCount)); 
      } 
     } 
     buffer.append(tabs.toString()); 
     buffer.append("]\n"); 
    } else { 
     buffer.append("\n"); 
     buffer.append(tabs.toString()); 
     buffer.append("{\n"); 
     while (oClass != null) { 
      Field[] fields = oClass.getDeclaredFields(); 
      for (int i = 0; i < fields.length; i++) { 
       buffer.append(tabs.toString()); 
       fields[i].setAccessible(true); 
       buffer.append(fields[i].getName()); 
       buffer.append("="); 
       try { 
        Object value = fields[i].get(o); 
        if (value != null) { 
         if (value.getClass().isPrimitive() 
           || value.getClass() == java.lang.Long.class 
           || value.getClass() == java.lang.String.class 
           || value.getClass() == java.lang.Integer.class 
           || value.getClass() == java.lang.Boolean.class) { 
          buffer.append(value); 
         } else { 
          buffer.append(dump(value, callCount)); 
         } 
        } 
       } catch (IllegalAccessException e) { 
        buffer.append(e.getMessage()); 
       } 
       buffer.append("\n"); 
      } 
      oClass = oClass.getSuperclass(); 
     } 
     buffer.append(tabs.toString()); 
     buffer.append("}\n"); 
    } 
    return buffer.toString(); 
} 

当我想这个我得到错误:

No Class Found and No main function.

+0

您能否提供完整的异常堆栈? –

+0

@elinamohanty问不好的问题将总是吸引downvotes和关闭。我喜欢帮助初学者,发送邮件,查看我的个人资料。如果你得到太多的赞成或关闭,那么你可能会被禁止在将来发布问题 – SpringLearner

+0

检查你的收件箱@SpringLearner –

回答

2

在Java中创建一个类,其中包含一个主要功能。

public class StackOverflowExample { 

public static void main(String[] args) { 
     //Here call the method dump, sample follows. 
     dump(new Object(),1); 
    } 
} 

按照该方法。

public static String dump(Object o, int callCount)