2011-07-13 4 views
0

Javaインターフェイスのすべてのフィールドを反映させることは可能ですか?たとえば、Javaインターフェイスのすべてのフィールドを反射的に取得しますか?

import java.lang.reflect.*; 

public class field1 { 

    private double d; 
    public static final int i = 37; 
    String s = "testing"; 

    public static void main(String args[]) { 
     try { 
      Class cls = Class.forName("field1"); 

      Field fieldlist[] = cls.getDeclaredFields(); 
      for (int i = 0; i < fieldlist.length; i++) { 
       Field fld = fieldlist[i]; 
       System.out.println("name= " + fld.getName()); 
       System.out.println("-----"); 
      } 
     } catch (Throwable e) { 
      System.err.println(e); 
     } 
    } 
} 

固定されています。

Class.forName( "field1")に完全なクラスパスを追加するのを忘れました。 Class.forName( "com.x.y.z.field1");

+0

私の悪い、完全なパス名を与えていない、素早い返信のおかげで、 – daydreamer

+0

申し訳ありません、あなたの更新を見たので、私は前のコメントを削除しました。 :) – whirlwin

+1

インターフェイスにフィールドがありません。 – gigadot

答えて

0

Javaインターフェイスですべてのフィールドを反映させることは可能ですか?

確かに。あなたがここに持っているのと同じコードはインターフェイス上で動作するはずです。インターフェイスから取得するフィールドは、staticfinalの両方になります。

関連する問題