zoukankan      html  css  js  c++  java
  • 利用Java反射根据类的名称获取属性信息和父类的属性信息

    代码:

    import java.lang.reflect.Field;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class ObjectUtil {
    
    	/**
    	 * 利用Java反射根据类的名称获取属性信息和父类的属性信息
    	 * @param className
    	 * @return
    	 * @throws ClassNotFoundException
    	 */
    	public static List<Field> getFiledsInfo(String className) throws ClassNotFoundException {
    		List<Field> list = new ArrayList<>();
    		Class<?> clazz = Class.forName(className);
    		Field[] fields = clazz.getDeclaredFields();
    		list.addAll(Arrays.asList(fields));
    		Class<?> superClazz = clazz.getSuperclass();
    		if (superClazz != null) {
    			Field[] superFields = superClazz.getDeclaredFields();
    			list.addAll(Arrays.asList(superFields));
    		}
    		return list;
    	}
    	
    	public static void main(String[] args) {
    		try {
    			List<Field> fields = getFiledsInfo(Student.class.getName());
    			for (Field field : fields) {
    				// 设置访问对象权限,保证对私有属性的访问
    				field.setAccessible(true);
    				System.out.println(field.getName());
    			}
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }
    

     运行结果:

  • 相关阅读:
    json_encode([0])
    try catch throw
    如何 lookback
    协程||进程
    客户错了?
    循环 php 变量会影响到传入的参数
    csv变成xls, csv乱码
    虚拟机不能git push
    数组下标大小写
    php 静态方法
  • 原文地址:https://www.cnblogs.com/Big-Boss/p/9770929.html
Copyright © 2011-2022 走看看