Java反射机制获取Field

利用反射机制反射Student类中所有的Field
下面就是例子:
Student类代码:

//反射属性Field
public class Srudentt {
    //Field翻译为字段,其实就是属性/成员
    //5个Field,分别采用了不同的访问控制权限修饰符。
    public int no;//这一行统称为一个Field对象。
    private String name;
    protected int age;
    boolean sex;
    public static final double MATH_PI = 3.1415926;
}

调用测试类:

/*
反射Student类当中所有的Field。
 */

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class Reflect {
    public static void main(String[] args) throws Exception{
        //获取整个类Class
        Class studentClass = Class.forName("cn.itcast.day04.demo01.Kt1.test2.Srudentt");
        String className = studentClass.getName();
        System.out.println("完整类名"+className);

        String simpName = studentClass.getSimpleName();
        System.out.println("简类名"+simpName);

        //获取类中所有的public修饰的Field
        Field[] fields = studentClass.getFields();
        System.out.println(fields.length);//测试只2个数据:2

        //field中有一个元素,取出。
        Field f = fields[0];

        //取出这个Field对象的名字。
        String fieldName =f.getName();
        System.out.println(fieldName);//输出no,因为他是Public的。

        //这个才是获取所有的Field对象
        Field[] fs = studentClass.getDeclaredFields();
        System.out.println(fs.length);//5
        System.out.println("**************************");
        ///遍历
        //拿到field
        for (Field field : fs){

            //获取属性的修饰符列表
            int i = field.getModifiers();//返回的修饰符是一个数字,每个数字是修饰符的代号!!
            System.out.println(i);

            //将这个代号数字转换成字符串
            String xiushifu = Modifier.toString(i);
            System.out.println(xiushifu);


            //获取属性的类型
            Class fieldType = field.getType();
            //String fName = fieldType.getName();
            String fName = fieldType.getSimpleName();
            System.out.println(fName);

            //获取属性的名字
            System.out.println(field.getName());
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值