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
广告