Java Field get()方法及实例

来源:这里教程网 时间:2026-02-17 20:50:38 作者:

Java Field get()方法及实例

java.lang.reflect.Fieldget() 方法用于获取字段对象的值。如果字段有一个原始类型,那么字段的值就会自动被包裹在一个对象中。如果字段是一个静态字段,那么obj的参数被忽略;它可能是空的,否则,基础字段是一个实例字段。如果指定的obj参数为空,该方法会抛出一个NullPointerException,如果指定的对象不是声明底层字段的类或接口的实例,则抛出IllegalArgumentException。如果该字段隐藏在obj的类型中,则根据前面的规则获得该字段的值。
语法

public double get(Object obj)             throws IllegalArgumentException,                    IllegalAccessException

参数: 该方法接受一个参数 obj ,它是要提取字段值的对象。
返回值: 该方法返回对象obj中代表字段的值;原始值在返回之前被包裹在一个适当的对象中。
异常: 该方法抛出以下异常。

    IllegalAccessException – 如果这个字段对象正在执行Java语言的访问控制,并且底层字段是不可访问的。IllegalArgumentException – 如果指定的对象不是声明底层字段的类或接口的实例(或其子类或实现者)。NullPointerException – 如果指定的对象为空,并且该字段是一个实例字段。ExceptionInitializerError – 如果此方法引发的初始化失败。

下面的程序说明了get()方法:
程序1 :

// Java program to demonstrate get() method import java.lang.reflect.Field; public class GFG {     public static void main(String[] args)        throws Exception    {         // Create the User class object        User user = new User();         // Get the all field objects of User class        Field[] fields = User.class.getFields();         for (int i = 0; i < fields.length; i++) {             // get value of the fields            Object value = fields[i].get(user);             // print result            System.out.println("Value of Field "                               + fields[i].getName()                               + " is " + value);        }    }} // sample User classclass User {     // static double values    public static double Marks = 34.13;    public static int Fees = 34199;    public static String name = "Aman";     public static double getMarks()    {        return Marks;    }     public static void setMarks(double marks)    {        Marks = marks;    }     public static int getFees()    {        return Fees;    }     public static void setFees(int fees)    {        Fees = fees;    }     public static String getName()    {        return name;    }     public static void setName(String name)    {        User.name = name;    }}

输出

Value of Field Marks is 34.13Value of Field Fees is 34199Value of Field name is Aman

程序2

// Java program to demonstrate get() method import java.lang.reflect.Field; public class GFG {     public static void main(String[] args)        throws Exception    {         // Create the RealNumbers class object        Fields field = new Fields();         // Get the all field objects of User class        Field[] fieldsOfFieldClass            = Fields.class.getFields();         for (int i = 0;             i < fieldsOfFieldClass.length; i++) {             // get value            Object value = fieldsOfFieldClass[i]                               .get(field);             // print result            System.out.println(                "Value of Field "                + fieldsOfFieldClass[i].getName()                + " is " + value);        }    }     // RealNumbers class    static class Fields {         // double field        public static final double doubleValue            = 9999999.34567;        public static final int intValue            = 9999999;        public static final float floatValue            = 9999999.34567f;        public static final            boolean booleanValue            = true;    }}

输出

Value of Field doubleValue is 9999999.34567Value of Field intValue is 9999999Value of Field floatValue is 9999999.0Value of Field booleanValue is true

参考文献 : https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#get-java.lang.Object-

相关推荐