Java反射【四、成员变量的反射和构造的反射】

获取一个类下所有字段信息

  • Field[] fs = c.getFields(); 获取所有字段(public)
  • Field[] fs = c.getDeclaredFields(); 获取所有声明字段
  • Class c = f.getType(); 获取字段类型
  • String s = f.getName(); 获取字段名称

Demo:

    public static void printFieldsMsg(Object obj) {
    Class c = obj.getClass();
    //打印输出所有成员变量的信息
    Field[] fs = c.getFields();
    for (Field field : fs) {
        Class type =  field.getType();
        String typeName = type.getSimpleName();
        String name = field.getName();
        System.out.println(typeName+" "+name);
    }
}

获取构造信息

  • Constructor[] cs = c.getConstructors(); 获取构造函数列表

Demo:

    public static void printConMessage(Object obj){
    Class c = obj.getClass();
    Constructor[] cs = c.getConstructors();
    for (Constructor constructor : cs) {
        System.out.print(constructor.getName()+"(");
        for (Class param : constructor.getParameterTypes()) {
            System.out.print(param.getSimpleName()+",");
        }
        System.out.println(")");
    }
}

转载于:https://www.cnblogs.com/shanelau/p/6581995.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值