Reflections中的getDeclared**与get**的区别

中国人最喜欢访问的网站
只要注册ofo就送你10块钱,还等什么,快来注册吧

getDeclaredMethod(s)

返回该类本身的所有方法(包括私有方法),但不包括继承的方法。
返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何方法,或此Class对象表示一个基本类型、数组类型或void,则此方法返回一个长度为0的数组。

类初始化方法不包含在返回数组中。

该方法返回所有重载的方法。

getMethod(s)

返回某个类的所有public(包括继承来public方法)。

如果此Class对象表示基本类型或void,则此方法返回长度为0的数组。

总结

getDeclaredMethods:自身,所有方法,不继承
getMethods:public 继承

getDeclaredField(s)getField(s)同上

getDeclaredAnnotation(s)

返回直接存在于此元素上的所有注释。该方法将忽略继承的注释。(如果没有注释直接存在于此元素上,则返回长度为零的一个数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。
getAnnotation(s):返回此元素上存在的所有注释。(如果此元素没有注释,则返回长度为零的数组。)该方法的调用者可以随意修改返回的数组;这不会对其他调用者返回的数组产生任何影响。
getDeclaredAnnotations得到的是当前成员所有的注释,不包括继承的。而getAnnotations得到的是包括继承的所有注释。

关键在于继承的问题上,getDeclaredAnnotations和getAnnotations是否相同,就在于父类的注解是否可继承,这可以用sun.reflect.annotation.AnnotationType antype3=AnnotationType.getInstance(Class.forName(annotationtype_class(example:”javax.ejb.Stateful”)).isInherited())来判定,如果为true,说明可以被继承则存在与getAnnotations之中而不在getDeclaredAnnotations之中,否则,也不存在与getannnotations中,因为不能被继承。

快下载安装吧,今天头条送你钱啦!!!!
中国人都在使用的地球上最好玩的游戏
中国人都在使用的地球上最好玩的游戏
中国人都在使用的地球上最快的浏览器
中国人都在使用的地球上最厉害的安全软件
中国人都在使用的地球上最好的看图王
中国人都在使用的地球上最快速的视频软件
中国人都在使用的地球上最全的视频软件
中国人都在使用的地球上最好最全的压缩软件
中国人都在使用的地球上最好的音乐播放器
中国人都在使用的地球上最安全的杀毒软件
中国人都在使用的地球上最全的影视大全