Java Class getField() 方法



描述

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

宣告

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

public Field getField(String name) throws NoSuchFieldException, SecurityException

引數

name - 這是欄位名稱。

返回值

此方法返回由 name 指定的此類的 Field 物件。

異常

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

  • NullPointerException - 如果 name 為 null

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

獲取類的欄位示例

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

package com.tutorialspoint;

public class ClassDemo {

   public static void main(String[] args) {
 
      ClassDemo c = new ClassDemo();
      Class cls = c.getClass();

      System.out.println("Field =");

      try {
         // string field
         Field sField = cls.getField("string1");
         System.out.println("Public field found: " + sField.toString());
      } catch(NoSuchFieldException e) {
         System.out.println(e.toString());
      }
   }

   public ClassDemo() {
      // no argument constructor
   }

   public ClassDemo(String string1) {       
      this.string1 = string1;
   }
    
   public String string1 = "tutorialspoint";
} 

輸出

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

Field =
Public field found: public java.lang.String ClassDemo.string1

獲取 ArrayList 類欄位的示例

以下示例演示了 java.lang.Class.getField() 方法的使用。在此程式中,我們使用了 ArrayList 的類。使用 getField(),我們檢索了一個不存在的欄位,程式丟擲一個異常。

package com.tutorialspoint;

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

public class ClassDemo {

   public static void main(String[] args) {

      Class cls = ArrayList.class;
      System.out.println("Field =");

      try {
         // string field
         Field sField = cls.getField("size");
         System.out.println("Public field found: " + sField.toString());
      } catch(NoSuchFieldException e) {
         System.out.println(e.toString());
      }
   }
} 

輸出

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

Field =
java.lang.NoSuchFieldException: size

獲取 Thread 類欄位的示例

以下示例演示了 java.lang.Class.getField() 方法的使用。在此程式中,我們使用了 Thread 的類。使用 getField(),我們檢索了一個存在的欄位,並列印結果。

package com.tutorialspoint;

import java.lang.reflect.Field;

public class ClassDemo {

   public static void main(String[] args) {

      Class cls = Thread.class;
      System.out.println("Field =");

      try {
         // string field
         Field sField = cls.getField("MIN_PRIORITY");
         System.out.println("Public field found: " + sField.toString());
      } catch(NoSuchFieldException e) {
         System.out.println(e.toString());
      }
   }
} 

輸出

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

Field =
Public field found: public static final int java.lang.Thread.MIN_PRIORITY
java_lang_class.htm
廣告