java.lang.Class.getDeclaredFields()方法範例


java.lang.Class.getDeclaredFields() 方法返回Field物件的陣列,包括公共,保護,預設(包)存取和私有欄位,但不包括繼承的欄位。該方法返回一個長度為0的陣列,如果類或介面不宣告任何欄位,或者此Class物件表示一個基本型別,陣列類或void。

宣告

以下是java.lang.Class.getDeclaredFields()方法的宣告

public Field[] getDeclaredFields() throws SecurityException

引數

  • NA

返回值

此方法返回一個代表這個類的所有宣告的欄位Field物件的陣列。

異常

  • SecurityException -- 如果安全管理存在。

例子

下面的例子顯示java.lang.Class.getDeclaredFields()方法的使用。

package com.yiibai;

import java.lang.reflect.*;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
        ClassDemo c = new ClassDemo();
        Class cls = c.getClass();
       
        // returns the array of Field objects
        Field[] fields = cls.getDeclaredFields();
        for(int i = 0; i < fields.length; i++) {
           System.out.println("Field = " + fields[i].toString());
        }
     }
     catch(Exception e) {
        System.out.println(e.toString());
     }
   }

   public ClassDemo() {
      // no argument constructor
   }

   public ClassDemo(long l, int i) {
      this.l = l;
      this.i = i;
   }

   long l = 77688;
   int i = 3;
}

讓我們來編譯和執行上面的程式,這將產生以下結果:

Field = long ClassDemo.l
Field = int ClassDemo.i