Java 如何获取一个 class 的所有属性和方法

👆🏻👆🏻👆🏻关注博主,让你的代码变得更加优雅。

前言

Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的"。

官网:https://www.hutool.cn/

推荐说明

Java的反射机制,可以让语言变得更加灵活,对对象的操作也更加"动态",因此在某些情况下,反射可以做到事半功倍的效果。Hutool针对Java的反射机制做了工具化封装,封装包括:

  1. 获取构造方法
  2. 获取字段
  3. 获取字段值
  4. 获取方法
  5. 执行方法(对象方法和静态方法)

最佳实践

引入pom

xml 复制代码
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <!-- 请查看最新版本 https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
    <version>5.8.26</version>
</dependency>

使用

获取某个类的所有方法

java 复制代码
Method[] methods = ReflectUtil.getMethods(ExamInfoDict.class);

获取某个类的指定方法

java 复制代码
Method method = ReflectUtil.getMethod(ExamInfoDict.class, "getId");

构造对象

java 复制代码
ReflectUtil.newInstance(ExamInfoDict.class);

执行方法

java 复制代码
class TestClass {
    private int a;

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }
}
java 复制代码
TestClass testClass = new TestClass();
ReflectUtil.invoke(testClass, "setA", 10);

写在最后

给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。

github地址:https://github.com/zhuangjiaju/easytools

gitee地址:https://gitee.com/zhuangjiaju/easytools

相关推荐
24k小善32 分钟前
Flink TaskManager详解
java·大数据·flink·云计算
杜小暑36 分钟前
动态内存管理
c语言·开发语言·动态内存管理
想不明白的过度思考者37 分钟前
Java从入门到“放弃”(精通)之旅——JavaSE终篇(异常)
java·开发语言
我真的不会C1 小时前
QT窗口相关控件及其属性
开发语言·qt
CodeCraft Studio1 小时前
Excel处理控件Aspose.Cells教程:使用 Python 在 Excel 中进行数据验
开发语言·python·excel
.生产的驴1 小时前
SpringBoot 封装统一API返回格式对象 标准化开发 请求封装 统一格式处理
java·数据库·spring boot·后端·spring·eclipse·maven
火柴盒zhang1 小时前
websheet之 编辑器
开发语言·前端·javascript·编辑器·spreadsheet·websheet
猿周LV1 小时前
JMeter 安装及使用 [软件测试工具]
java·测试工具·jmeter·单元测试·压力测试
景天科技苑1 小时前
【Rust】Rust中的枚举与模式匹配,原理解析与应用实战
开发语言·后端·rust·match·enum·枚举与模式匹配·rust枚举与模式匹配
晨集1 小时前
Uni-App 多端电子合同开源项目介绍
java·spring boot·uni-app·电子合同