Java如何获取类对象的字段?

下面的示例使用反射获取类对象的字段。我们将获取字段名称及其对应的类型。下面显示了三种可用于获取对象字段的方式:

  • Class.getDeclaredFields()

  • Class.getFields()

  • Class.getField(String)

package org.nhooo.example.lang;

import java.util.Date;

import java.lang.reflect.Field;

public class GetFields {

    public Long id;

    protected String name;

    private Date birthDate;

    Double weight;

    public static void main(String[] args) {

        GetFields object = new GetFields();

        Class clazz = object.getClass();

        // 获取所有对象字段,包括公共的,受保护的,打包的和私有的

        // 访问字段。

        Field[] fields = clazz.getDeclaredFields();

        System.out.println("Number of fields = " + fields.length);

        for (Field field : fields) {

            System.out.println("Field name = " + field.getName());

            System.out.println("Field type = " + field.getType().getName());

        }

        System.out.println("n----------------------------------------n");

        // 获取所有对象可访问的公共字段。

        fields = clazz.getFields();

        System.out.println("Number of fields = " + fields.length);

        for (Field field : fields) {

            System.out.println("Field name = " + field.getName());

            System.out.println("Field type = " + field.getType().getName());

        }

        System.out.println("n----------------------------------------n");

        try {

            // 使用公共访问修饰符获取字段名称ID

            Field field = clazz.getField("id");

            System.out.println("Field name = " + field.getName());

            System.out.println("Field type = " + field.getType().getName());

        } catch (NoSuchFieldException e) {

            e.printStackTrace();

        }

    }

}

                       

以上是 Java如何获取类对象的字段? 的全部内容, 来源链接: utcz.com/z/326331.html

回到顶部