Java 反射获取属性名、属性类型、属性值、判断属性类型

1.代码

	/**
     * 通过反射获取对象属性名、属性类型、属性值
     *
     * @param t 需要反射的对象
     * @author hcx
     */
	public static  <T> void reflect(T t){
        // 获取所有属性
        // getDeclaredFields 不包含父类,包含私有属性
        // getFields 包含父类属性
        Field[] fields = t.getClass().getDeclaredFields();
        for (Field field : fields) {
        	// 获取属性名
            String fieldName = field.getName();
            // 设置私有属性的访问权限
            field.setAccessible(true);

            // 获取属性类型
            Class<?> fieldType = field.getType();

            Object fieldValue = null;
            try {
                // 获取属性值
                fieldValue = field.get(t);

				// 判断属性类型
				if (fieldType == Integer.class){
                	// ...省略代码
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }

            System.out.println("属性名:" + fieldName + "\t属性类型:" + fieldType + "\t属性值:" + fieldValue);
        }
    }

2.输出
Java 反射获取属性名、属性类型、属性值、判断属性类型_第1张图片

你可能感兴趣的:(Java,java)