2011-07-13 34 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