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

相关推荐
极客代码2 分钟前
Linux IPC:System V共享内存汇总整理
linux·c语言·开发语言·并发·共享内存·通信·system v
orangapple8 分钟前
一个差劲的软件设计
开发语言·c#
算法与编程之美11 分钟前
冒泡排序
java·开发语言·数据结构·算法·排序算法
Aphelios38012 分钟前
Java 学习记录:基础到进阶之路(一)
java·开发语言·学习·idea
白总Server13 分钟前
Bash和Zsh在处理大文件时优化方法
开发语言·网络·ide·stm32·安全·udp·bash
程序员麻辣烫21 分钟前
晋升系列4:学习方法
java·数据库·程序人生·学习方法
爱学习的小王!28 分钟前
有关MyBatis的动态SQL
java·笔记·sql·学习·mybatis
斑鸠喳喳30 分钟前
模块系统 JPMS
java·后端
苦逼的老王32 分钟前
java之uniapp实现门店地图
java·开发语言·uni-app
austin流川枫33 分钟前
如何基于缓存设计实现一个商品最近搜索记录功能
java·redis