Java基础 - 反射(二)invoke 方法

invoke 执行源码

@CallerSensitive
public Object invoke(Object obj, Object... args)
    throws IllegalAccessException, IllegalArgumentException,
       InvocationTargetException
{
    if (!override) {
        if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) {
            Class<?> caller = Reflection.getCallerClass();
            checkAccess(caller, clazz, obj, modifiers);
        }
    }
    MethodAccessor ma = methodAccessor;             // read volatile
    if (ma == null) {
        ma = acquireMethodAccessor();
    }
    return ma.invoke(obj, args);
}
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本篇文章继续介绍Java反射机制,不同的是侧重于介绍动态代理。动态代理是代理模式中的一种,是通过Java反射机制来...
    Android进阶与总结阅读 3,749评论 0 0
  • 本篇文章继续介绍Java反射机制,不同的是侧重于介绍动态代理。动态代理是代理模式中的一种,是通过Java反射机制来...
    Ruheng阅读 8,496评论 1 44
  • 最近看源码时发现很多地方使用的反射机制,一直对这个反射机制不太清楚,今天花一点时间看了看,敲了敲反射的使用方法;两...
    vanzh阅读 3,647评论 0 0
  • 一、代理模式 定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过...
    年少懵懂丶流年梦阅读 3,841评论 0 2
  • 有句俗语:“自己与自己过不去。”当自己突然明白,还有两个“自己”与自己“对影成三人”之时,那两个“自己”则相互挟持...
    夕子宁洋阅读 3,720评论 0 0