Java Class getDeclaredField() 方法



描述

Java Class getDeclaredField() 方法返回一個 Field 物件,該物件反映由此 Class 物件表示的類或介面的指定宣告欄位。name 引數是一個字串,指定所需欄位的簡單名稱。

宣告

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

public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException

引數

name − 這是欄位的名稱。

返回值

此方法返回此類中指定欄位的 Field 物件。

異常

  • NoSuchFieldException − 如果未找到具有指定名稱的欄位。

  • NullPointerException − 如果 name 為 null。

  • SecurityException − 如果存在安全管理器 s。

獲取類的宣告欄位示例

以下示例顯示了 java.lang.Class.getDeclaredField() 方法的用法。在這個程式中,我們建立了一個 ClassDemo 的例項,然後使用 getClass() 方法檢索例項的類。使用 getDeclaredField(),我們檢索了所需的 Field 並列印它。

package com.tutorialspoint;

import java.lang.reflect.Field;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
         ClassDemo c = new ClassDemo();
         Class cls = c.getClass();

         // field long l
         Field lVal  = cls.getDeclaredField("l");
         System.out.println("Field = " + lVal.toString());
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }

   public ClassDemo() {
      // no argument constructor
   }

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

   long l = 77688;
}

輸出

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

Field = long com.tutorialspoint.ClassDemo.l

獲取 ArrayList 的宣告欄位示例

以下示例顯示了 java.lang.Class.getDeclaredField() 方法的用法。在這個程式中,我們使用了 ArrayList 的類。使用 getDeclaredField(),我們檢索了所需的 Field 並列印它。

package com.tutorialspoint;

import java.lang.reflect.Field;
import java.util.ArrayList;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
         Class cls = ArrayList.class;

         // field int size
         Field size  = cls.getDeclaredField("size");
         System.out.println("Field = " + size.toString());
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }
}

輸出

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

Field = private int java.util.ArrayList.size

獲取 Thread 的宣告欄位示例

以下示例顯示了 java.lang.Class.getDeclaredField() 方法的用法。在這個程式中,我們使用了 Thread 的類。使用 getDeclaredField(),我們檢索了所需的 Field 並列印它。

package com.tutorialspoint;

import java.lang.reflect.Field;

public class ClassDemo {

   public static void main(String[] args) {

     try {            
         Class cls = Thread.class;

         // field long tid
         Field tid  = cls.getDeclaredField("tid");
         System.out.println("Field = " + tid.toString());
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }
}

輸出

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

Field = private final long java.lang.Thread.tid
java_lang_class.htm
廣告