使用java反射获取某一个类中的属性,并打印出来

代码

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

public class ReflectTest04 {

public static void main(String[] args) throws ClassNotFoundException {
            //反射的类的路径cn.wuquejs.reflect.User
    Class c = Class.forName("cn.wuquejs.reflect.User");
    
    //获取public修饰的属性数组
    //Field[] filed = c.getFields();
    
    //获取类中所有的属性
    Field[] field = c.getDeclaredFields();
    
    //使用反射反编译
    StringBuilder sb = new StringBuilder(200);
    sb.append(Modifier.toString(c.getModifiers()) + "class" + c.getSimpleName() + "{\n");
    for(Field f : field) {
                    //缩进,使获取到的属性打印出来更加美观
        sb.append("\t");
        //访问权限修饰符
        String s = Modifier.toString(f.getModifiers());
        if(!"".equals(s)) {
            sb.append(Modifier.toString(f.getModifiers()) + " ");
        }
        
        //属性的类型名称
        Class type = f.getType();
        sb.append(type.getSimpleName() + " ");
        //属性的名字
        sb.append(f.getName() + ";\n");
    }
    sb.append("}");
    
            //打印出反射类中的属性
    System.out.println(sb.toString());
}

}

User类

package cn.wuquejs.reflect;

import java.util.Date;

public class User {
private int age;
public String name;
protected Date birthday;
boolean sex;
}

运行结果

最后修改:2020 年 03 月 10 日 06 : 49 PM