反射获取类及其父类的所有字段

news/2024/5/19 6:39:46 标签: 反射, 反射获取所有字段
  • getFields返回一个Field类型数组,其中包含当前类的public字段,如果此类继承于某个父类,同时包括父类的public字段。其它的proteced和private字段,无论是属于当前类还是父类都不被此方法获取。

  • getDeclareFields返回一个Field类型数组,结果包含当前类的所有字段,private、protected、public或者无修饰符都在内。另外,此方法返回的结果不包括父类的任何字段。 此方法只是针对当前类的。

    /**
     * 获取本类及其父类的字段属性
     * @param clazz 当前类对象
     * @return 字段数组
     */
    public static Field[] getAllFields(Class<?> clazz) {
        List<Field> fieldList = new ArrayList<>();
        while (clazz != null){
            fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));
            clazz = clazz.getSuperclass();
        }
        Field[] fields = new Field[fieldList.size()];
        return fieldList.toArray(fields);
    }

    public static void main(String[] args) {
        //final Field[] fieldList = getAllFields(Subject.class);
        //for (Field field : fieldList) {
        //    System.out.println(field);
        //}

        final List<String> list = getFieldsComment(Subject.class);
        System.out.println(list);
    }

http://www.niftyadmin.cn/n/5046866.html

相关文章

2023-09-24 LeetCode每日一题(LRU 缓存)

2023-09-24每日一题 一、题目编号 146. LRU 缓存二、题目链接 点击跳转到题目位置 三、题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存i…

服务注册发现_创建服务消费者

创建cloud-consumer-order80模块 pom文件添加依赖 <dependencies><!-- 引入Eureka client依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId&…

Java线程池是如何保证核心线程不被销毁的

来源: Java线程池是如何保证核心线程不被销毁的_朝 花 拾 夕的博客-CSDN博客 对于Java中 Thread 对象&#xff0c;同一个线程对象调用 start 方法后&#xff0c;会在执行完run 后走向终止&#xff08;TERMINATED&#xff09;状态&#xff0c;也就是说一个线程对象是不可以通过多…

可删除背包(计数类)=>转移数组进行展开:ABC321F

https://atcoder.jp/contests/abc321/tasks/abc321_f 还真没见过这个套路&#xff0c;呜呜┭┮﹏┭┮ 首先加就正常加&#xff0c;从后往前 但删的话应该是从前往后减 为什么呢&#xff1f; 先写一下自己的理解&#xff0c;加要从后往前加是为了防止加多次 减的话为了保证…

链表oj题2(Leetcode)(牛客)——合并两个有序链表;判断回文链表;链表分割

链表oj题2&#xff08;Leetcode&#xff09;&#xff08;牛客&#xff09; 一&#xff0c;合并两个有序链表1.1分析2.2代码 二&#xff0c;链表的回文结构2.1分析2.2代码 三&#xff0c;链表分割3.1分析3.2代码 四&#xff0c;小结 一&#xff0c;合并两个有序链表 合并两个有…

[X3m]Ubuntu 根文件系统制作

使用ubuntu20.04 sudo apt-get install wget ca-certificates device-tree-compiler pv bc lzop zip binfmt-support \ build-essential ccache debootstrap ntpdate gawk gcc-arm-linux-gnueabihf qemu-user-static \ u-boot-tools uuid-dev zlib1g-dev unzip libusb-1.0-0-d…

【Verilog 教程】4.6 Verilog 多路分支语句

关键词&#xff1a;case&#xff0c;选择器 case 语句是一种多路条件分支的形式&#xff0c;可以解决 if 语句中有多个条件选项时使用不方便的问题。 case 语句 case 语句格式如下&#xff1a; case(case_expr)condition1 : true_statement1 ;condition2 …

YOLOv5:修改backbone为ACMIX

YOLOv5&#xff1a;修改backbone为ACMIX 前言前提条件相关介绍ACMIXYOLOv5修改backbone为ACMIX修改common.py修改yolo.py修改yolov5.yaml配置 参考 前言 记录在YOLOv5修改backbone操作&#xff0c;方便自己查阅。由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评…