本文以我以前的文章为基础 。 在本文中,我们将看到如何使用Java Reflection检索类相关信息。 我们将重点介绍方法名称。

注意:我将创建一个单独的反射器实用程序类,在该类中,我们在其构造函数中输入一个目标类,然后使用一个单独的方法检索信息。 这样,我们可以隔离我们的需求。 在开始之前,请先查看此内容 。

如何在一个类中获取所有声明的方法名称?

这意味着,我们将获得在类内部声明的方法名称(公共,私有,默认,受保护),即不是继承的方法。

public String[] getAllOwnMethodNames(){ArrayList<String> allMethods = new ArrayList<String>();for(Method aMethod : myClass.getDeclaredMethods()){          allMethods.add("Method Name : "+aMethod.getName()+" , Full Name : "+aMethod.toString());}return allMethods.toArray(new String[allMethods.size()]);}

如何从一个类(包括其自己的超类,接口的继承的,实现的方法)中访问所有方法名称?

public String[] getAllPubliAndInheritedMethodNames(){ArrayList<String> allMethods = new ArrayList<String>();for(Method aMethod : myClass.getMethods()){            allMethods.add("Method Name : "+aMethod.getName()+" , Full Name : "+aMethod.toString());}return allMethods.toArray(new String[allMethods.size()]);}

注意:要获得详细信息,我们使用getName()toString()方法。

对于这两种情况,我们都可以指定方法名称来获取该特定方法。

myClass.getDeclaredMethod(<Name of the method as string>, parameter of that method)
myClass.getMethod(<Name of the method as string>, parameter of that method)

在这两种情况下,我们都需要知道方法的名称。 有时,对于一个类,我们需要知道某个方法是Getter还是setter方法。 我们可以应用一个小的字符串过滤器,如下所示:

要知道它是否是Getter方法:

aMethod.getName().startsWith("set");

要知道它是否是一个Setter方法:

aMethod.getName().startsWith("get");

翻译自: https://www.javacodegeeks.com/2015/01/how-to-get-all-method-information-under-a-class-in-java-reflection.html

如何在Java Reflection中的类下获取所有方法信息?相关推荐

  1. IDEA下,如何在java项目中新增jsp模板文件

    IDEA下,如何在java项目中新增jsp模板文件 大家会不会有这样的烦恼,就是当想要创建一个jsp模板文件的时候,右键new的时候找不到JSP选项. 这是因为在创建项目的时候没有选中Web Appl ...

  2. java 线程中创建线程_如何在Java 8中创建线程安全的ConcurrentHashSet?

    java 线程中创建线程 在JDK 8之前,还没有办法在Java中创建大型的线程安全的ConcurrentHashSet. java.util.concurrent包甚至没有一个名为Concurren ...

  3. 如何在Java 8中创建线程安全的ConcurrentHashSet?

    在JDK 8之前,还没有办法在Java中创建大型的线程安全的ConcurrentHashSet. java.util.concurrent包甚至没有一个名为ConcurrentHashSet的类,但是 ...

  4. 如何在Java 8中使用LocalDateTime格式化/解析日期-示例教程

    Java项目中的常见任务之一是将日期格式化或解析为String,反之亦然. 解析日期表示您有一个表示日期的字符串,例如" 2017-08-3",并且要将其转换为表示Java中日期的 ...

  5. mye连接mysql数据库_MySQL_如何在Java程序中访问mysql数据库中的数据并进行简单的操作,在上篇文章给大家介绍了Myeclip - phpStudy...

    如何在Java程序中访问mysql数据库中的数据并进行简单的操作 在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据 ...

  6. 如何在java代码中读取配置文件

    在日常开发过程中,我们经常需要拼接一些字符串之类的东西,而这些字符串往往是不变的,或者在java代码中多次使用到的.当然我们可以在java代码中写死,但是这样做的缺点也是有目共睹的,一旦业务需求发生变 ...

  7. Java poi 列移动_如何在java xssf中移動列poi

    如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...

  8. 如何在Java项目中查找未使用/无效的代码

    本文翻译自:How to find unused/dead code in java projects What tools do you use to find unused/dead code i ...

  9. jfinal 普通java工程_JFinal getModel方法如何在java项目中使用

    JFinal getModel方法如何在java项目中使用 发布时间:2020-11-17 15:11:27 来源:亿速云 阅读:94 作者:Leah 今天就跟大家聊聊有关JFinal getMode ...

最新文章

  1. 因为BitMap,白白搭进去8台服务器...
  2. Xilinx FPGA的配置
  3. 用飞桨做自然语言处理:神经网络语言模型应用实例
  4. hadoop跑第一个实例过程
  5. 为什么装了ACDSEE 就不能点网站上的连接?
  6. 2009岁末之复用系统框架(B/S)
  7. 程序猿们正在疯狂battle,看看究竟谁的算法更6
  8. SubclassDlgItem函数
  9. 笔记︱多种常见聚类模型以及分群质量评估(聚类注意事项、使用技巧)
  10. 高密度椒盐噪声的多方向加权均值滤波算法-附代码
  11. 新疆财大计算机科学,新疆财经大学计算机科学与工程学院学生参加了多项专业赛事...
  12. 黑群晖数据迁移白群晖(DS 920+)
  13. 矩阵的迹(Trace)
  14. python导出excel文件数字签名_如何使用带有etoken(笔驱动器)的Python对PDF文档进行数字签名?...
  15. 帆软公式如何用数据库字段_高考数学必背100招:如何用构造法求数列通项公式?...
  16. SSD固态硬盘坏了,还能修好吗?
  17. unity 编辑器软件报错 相关
  18. 使用wireshark没有抓到websocket包
  19. 图片较多的网站,如淘宝京东、美丽说花瓣、QQ空间、百度图片等都采用哪些技术优化图片展示?
  20. #自学C语言# C语言小白在线求教大神点播orz

热门文章

  1. 使用ueditor实现多图片上传案例
  2. lombok进行有参无参构造出现的问题
  3. #{} vs ${}
  4. from + size must be less than or equal to: [10000] but was [10550]
  5. 日志-周报-月报(2019年2月)
  6. java转换文本文件到xlsx(自制缓冲区,无需先验文件行数)
  7. java集合——数组列表(ArrayList)+散列集(HashSet)
  8. hadoop2.6.0+eclipse配置
  9. java8默认垃圾收集器_Java 8中最快的垃圾收集器是什么?
  10. Quarkus的其他(非标准)CDI功能