📜  Java中的类 getField() 方法及示例

📅  最后修改于: 2022-05-13 01:55:43.604000             🧑  作者: Mango

Java中的类 getField() 方法及示例

Java.lang.Class 类getField()方法用于获取该类的指定字段,即公共字段及其成员。该方法以Field对象的形式返回该类的指定字段。

句法:

public Field getField(String fieldName)
       throws NoSuchFieldException,
              SecurityException

参数:此方法接受一个参数fieldName ,即要获取的字段。

返回值:该方法以Field对象的形式返回该类的指定字段

异常此方法抛出:

  • 如果未找到具有指定名称的字段,则NoSuchFieldException
  • 如果名称为空,则出现NullPointerException
  • 如果存在安全管理器并且不满足安全条件,则出现 SecurityException。

下面的程序演示了 getField() 方法。

示例 1:

// Java program to demonstrate getField() method
  
import java.util.*;
  
public class Test {
  
    public Object obj;
  
    public static void main(String[] args)
        throws ClassNotFoundException, NoSuchFieldException
    {
  
        // returns the Class object for this class
        Class myClass = Class.forName("Test");
  
        System.out.println("Class represented by myClass: "
                           + myClass.toString());
  
        String fieldName = "obj";
  
        // Get the field of myClass
        // using getField() method
        System.out.println(
            fieldName + " Field of myClass: "
            + myClass.getField(fieldName));
    }
}
输出:
Class represented by myClass: class Test
obj Field of myClass: public java.lang.Object Test.obj

示例 2:

// Java program to demonstrate getField() method
  
import java.util.*;
  
class Main {
  
    private Object obj;
  
    Main()
    {
  
        class Arr {
        };
  
        obj = new Arr();
    }
  
    public static void main(String[] args)
        throws ClassNotFoundException, NoSuchFieldException
    {
        Main t = new Main();
  
        // returns the Class object
        Class myClass = t.obj.getClass();
  
        String fieldName = "obj";
  
        try {
            // Get the field of myClass
            // using getField() method
            System.out.println(
                fieldName + " Field of myClass: "
                + myClass.getField(fieldName));
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
输出:
java.lang.NoSuchFieldException: obj

参考: https://docs.oracle.com/javase/9/docs/api/ Java/lang/Class.html#getField-java.lang.String-