栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java反射总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java反射总结

Class类中Medthod、Filed、Constructor的方法都有Declare,这跟不加declare有什么区别,我们看一下源码定义:

以获取Constructor对象的方法为例看一下:

@CallerSensitive
public Constructor getDeclaredConstructor(Class... parameterTypes)
    throws NoSuchMethodException, SecurityException {
    checkMemberAccess(Member.DECLARED, Reflection.getCallerClass(), true);
    return getConstructor0(parameterTypes, Member.DECLARED);
}
@CallerSensitive
public Constructor getConstructor(Class... parameterTypes)
    throws NoSuchMethodException, SecurityException {
    checkMemberAccess(Member.PUBLIC, Reflection.getCallerClass(), true);
    return getConstructor0(parameterTypes, Member.PUBLIC);
}

自行对比这两个方法,返回值处传的参数不同,Member.DECLARED和Member.PUBLIC正好与方法名对应,继续看一下这个常量的定义:

public static final int PUBLIC = 0;


public static final int DECLARED = 1;

可以看到,PUBLIC是获取所有public修饰的类后者接口的构造方法。包含继承的类。DECLARED标识public修饰的类后者接口的构造方法,但不包含继承的成员。

由此我们可以得出以getDeclared获取所有类各个部分的组件对象,包含继承的类。

我们可以基本推测出class类中所有的方法了,如下:

Method对象:

Method getMethod(String name, Class … parameterType)

Method[] getMethods()

Method getDeclaredMethod(String name, Class … parameterType)

Method[] getDeclaredMethods()

Constructor对象:

Constructor getConstructor(Class… parameterTypes)

Constructor[] getConstructors()

Constructor getDeclaredConstructor(Class… parameterTypes)

Constructor[] getDeclaredConstructors()

Field对象:

Field getField(String name)

Field[] getFields()

Field getDeclaredField(String name)

Field[] getDeclaredFields()

Annotation对象:

也类似

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/880966.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号