Java反射中知识点积累

2019-03-14  本文已影响0人  睿丶清

getFields()与getDeclaredFields()区别

    getFields()只能访问类中声明为公有的字段,私有的字段它无法访问.

    getDeclaredFields()能访问类中所有的字段,与  public,private,protect无关  

getMethods()与getDeclaredMethods()区别:

    getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法.

    getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法  

getConstructors()与getDeclaredConstructors()区别:

    getConstructors()只能访问类中声明为public的构造函数.

    getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关

setAccessible()方法的使用:

    要序列化的时候,我们又必须有能力去处理这些字段,这时候,我们就需要调用AccessibleObject上的setAccessible()方法来允许这种访问,而由于反射类中的Field,Method和Constructor继承自AccessibleObject,因此,通过在这些类上调用setAccessible()方法,我们可以实现对这些字段的操作。

上一篇 下一篇

猜你喜欢

热点阅读