java反射判断类、方法、字段的修饰符

硅谷探秘者 算法基础 2628 0 0

Java的反射机制可以让我们获取某个类的所有信息,本文要聊的是如何获取某个类,某个类的属性,某个类的方法的修饰符。或判断某类、属性、方法上是否有某个修饰符。

在Class、Field、Method这三个类上都有一个getModifiers方法,这个方法返回一个int类型的返回值,代表类、属性、方法的修饰符。

修饰符和对应的具体值如下:

  • PUBLIC: 1
  • PRIVATE: 2
  • PROTECTED: 4
  • STATIC: 8
  • FINAL: 16
  • SYNCHRONIZED: 32
  • VOLATILE: 64
  • TRANSIENT: 128
  • NATIVE: 256
  • INTERFACE: 512
  • ABSTRACT: 1024
  • STRICT: 2048

很明显如果类、属性、方法上有组合修饰符的话,那么getModifiers方法返回的值是上述对应修饰符值相加的结果。

比如属性:private static final int a=1;那么getModifiers返回的就是26=2+8+16对应private 、static、final

java.lang.reflect.Modifier这个工具类提供了判断修饰符的很多方法,例如:Modifier.isStatic(int)判断是否有static修饰符,Modifier.isFinal()判断是否有final修饰符等。


评论区
请写下您的评论...
暂无评论...
猜你喜欢
前端(h5) 1965 js串是否为整数原文:https://www.jb51.net/article/144255.htm串str是否为表达整数代码:if(!/^\d+$/.test(str
java基础 2959 java常用以及用总结packagereflect;importjava.lang.annotation.ElementType
weblog 1653 java请求浏览器型是否是ie浏览器importjavax.servlet.http.HttpServletRequest;/*** 浏览器*@author硅谷探秘者(jia
weblog 2105 vue事件监听,事件和按键!DOCTYPEhtmlhtml head metacharset="UTF-8" title/title scriptsrc="js
java虚拟机(jvm) 5841 。一个内部名就是这个完全限定名,其中点号用斜线代替。例如,String内部名为java/lang/String。2.型描述内部名只能用于或接口型。所有其他Java型,比如型,
数据库基础 2217 mysql查询中是不是null在mysql中,查询某为空时,切记不可用=null,而是isnull,不为空则是isnotnull例:select*fromtablewherecolumnisnull;select*fromtablewherecolumnisnotnull;
其他 9471 规则:(1)重写必须和被重写具有相同参数列表,返回型必须和被重写返回型相同或者是返回型。(2)重写访问控制不能比被重写更严格(比如一个在父中声明为pu
official 975 leetcode第344题(简单)原链接:https://leetcode-cn.com/problems/reverse-string/题目描述编写一个函数,其作用是将输入转过来。输入
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。