2016-06-22 3 views
-1

私はJavaで非常に新しく、Stack Overflow自体から得たJava Reflectionの例をテストしようとしています。Java Reflectionの例

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と終了を引き付けるでしょう。私は初心者を助け、私にメールを送り、私のプロフィールをチェックすることが大好きです。あまりにも多くの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) 
関連する問題