zoukankan      html  css  js  c++  java
  • 基础巩固 反射(一)

    publicclass Reflect {

    publicstaticvoid main(String[] args) throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{

    Person person = new Person("cristal",22);

    Class clazz = person.getClass();

    Field[] fields = clazz.getDeclaredFields();

    for(Field field : fields){

    String key = field.getName();

    PropertyDescriptor descriptor = new PropertyDescriptor(key,clazz);

    Method method = descriptor.getReadMethod();

    Object value = method.invoke(person);

    System.out.println(key +":"+value);

     

    }

    }

     

    }

    class Person implements Serializable{

    privatestaticfinallongserialVersionUID = -3273783136645942309L;//添加序列化会报错  因为 在PropertyDescriptor descriptor = new PropertyDescriptor(key,clazz会寻找readMethod,然后serialVersionUID并不会有相应get()方法

    private String name;

    privateintage;

    public Person(String name, inti) {

    this.name = name;

    this.age = i;

    }

    public String getName() {

    returnname;

    }

    publicvoid setName(String name) {

    this.name = name;

    }

    publicint getAge() {

    returnage;

    }

    publicvoid setAge(intage) {

    this.age = age;

    }

     

    }

  • 相关阅读:
    对我人生影响最大的三位老师
    自我介绍
    转-一般产品的使用过程
    谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍 --转载
    接口测试--总结
    常见正则表达式
    B/S架构的软件,主要的功能测试点有哪些
    SQL语句大全转
    11.2
    11.1
  • 原文地址:https://www.cnblogs.com/Luke-wang/p/9288607.html
Copyright © 2011-2022 走看看