反射相关方法

这篇具有很好参考价值的文章主要介绍了反射相关方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       Class clazz = Class.forName("com.test.zzz.Person");

        //获取clazz对应类中的所有方法,不能获取private方法,且获取从父类继承来的所有方法
        Method[] methods = clazz.getMethods();
        for(Method method:methods){
            System.out.print(" "+method.getName()+"()");
        }
       
        System.out.println("---------------------------");

        //获取所有方法,包括私有方法,所有声明的方法,都可以获取到,且只获取当前类的方法
        methods = clazz.getDeclaredMethods();
        for(Method method:methods){
            System.out.print(" "+method.getName()+"()");
        }
 

        //获取指定的方法需要参数名称和参数列表,无参则不需要写方法
        Method method = clazz.getDeclaredMethod("setName", String.class);
        System.out.println(method);

       注意:方法 public void setAge(int age) {  }
        这样写是获取不到的,如果方法的参数类型是int型
        如果方法用于反射,那么要么int类型写成Integer: public void setAge(Integer age) {  }
        要么获取方法的参数写成int.class

        method = clazz.getDeclaredMethod("setAge", int.class);
        System.out.println(method);


        //执行方法,第一个参数表示执行哪个对象的方法剩下的参数是执行方法时需要传入的参数
        Object obje = clazz.newInstance();
        method.invoke(obje,18);

        //私有方法的执行,必须在调用invoke之前加上一句method.setAccessible(true);
        method = clazz.getDeclaredMethod("privateMethod");
        System.out.println(method);
        System.out.println("---------------------------");
        System.out.println("执行私有方法");
        method.setAccessible(true);
        method.invoke(obje);文章来源地址https://www.toymoban.com/news/detail-609974.html

到了这里,关于反射相关方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中的反射(通过反射获取类的结构、invoke方法、获取注解)

    创建运行时类的对象是反射机制应用最多的地方。创建运行时类的对象有两种方式: 方式1:直接调用Class对象的newInstance()方法 要求: 1)类必须有一个无参数的构造器。 2)类的构造器的访问权限需要足够。 方式一的步骤 : 1)获取该类型的Class对象 2)调用Class对象的 new

    2024年02月04日
    浏览(37)
  • Java 8 中使用反射进行命令执行的 5 个方法

    今天在逛先知的时候看到了一篇文章:《探究使用反射进行除Runtime的命令执行方法》https://xz.aliyun.com/t/12446 其中大概讲了下命令执行的其他构造方式,但最后没有给出实例,所以我这里就简单研究了一下。 在RASP等安全产品防护严密的现在,普通的寻找Runtime.getRuntime().exec(c

    2023年04月20日
    浏览(27)
  • 反射 p5 反射相关使用和暴破

    方式一: 调用类中的public修饰的无参构造器; 方式二: 调用类中的指定构造器; Class类相关方法: newInstance():调用类中的无参构造器,获取对应类的对象; getConstructor(Class...clazz):根据参数列表,获取对应的public构造器对象; getDecalaredConstructor(Class...clazz):根据参数列表

    2024年02月16日
    浏览(28)
  • java面试题(21):private修饰的方法可以通过反射访问,那么private的意义是什么?

    1 反射简介 Java,在一个类中,为了不让外界访问到某些属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的,这就是java反射带来的便利。利用反射访问类的私有属性及方

    2024年01月22日
    浏览(30)
  • java的InputStream获取字节大小相关方法

    正常大部分项目都是使用的Spring,而Spring已经帮我们开发好了相应的工具类,我们直接调用即可。 2.1 不推荐理由 可以看一下方法注释: 大致意思是返回的字节数可能由于网络原因阻塞一次只能返回部分字节或者另外一个线程也读了导致返回部分字节,也就是说如果使用av

    2024年02月07日
    浏览(38)
  • java工程师面试技巧和方法,这份Github标星50K,相关资料参考

    Dubbo 为什么要用 Dubbo? Dubbo 的整体架构设计有哪些分层? 默认使用的是什么通信框架,还有别的选择吗? 服务调用是阻塞的吗? 一般使用什么注册中心?还有别的选择吗? 默认使用什么序列化框架,你知道的还有哪些? 服务提供者能实现失效提出是什么原理? 服务上线怎么

    2024年04月16日
    浏览(39)
  • Java中的Reflection(反射)、暴力反射

    1.1 反射的出现背景 Java程序中,所有的对象都有两种类型: 编译时类型 和 运行时类型 ,而很多时候对象的编译时类型和运行时类型 不一致 。 例如: 如上 :某些变量或形参的声明类型是 Object 类型,但是程序却需要调用该对象运行时类型的方法,该方法不是Object中的方法

    2024年02月04日
    浏览(32)
  • 【Java反射】Java利用反射获取和设置对象某属性的值

    通用工具类: 测试:

    2024年02月02日
    浏览(41)
  • Java笔记040-反射/反射机制、Class类

    目录 反射(reflection) 一个需求引出反射 反射机制 Java反射机制原理图 Java反射机制可以完成 反射相关的主要类 反射机制的优点和缺点 反射调用优化-关闭访问检查 Class类 基本介绍 代码解释部分 类加载方法 应用实例:Class02.java 获取Class类对象 代码解释部分 哪些类型有Class对象

    2024年02月09日
    浏览(37)
  • 组合,反射,魔术方法

    组合 反射 魔术方法

    2024年02月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包