getmodifiers java_Java反射机里Field的getModifiers()

public: 1

private: 2

protected: 4

static: 8

final: 16

synchronized: 32

volatile: 64

transient: 128

native: 256

interface: 512

abstract: 1024

strict: 2048

Java反射机制中,Field的getModifiers()方法返回类型为int类型;值表示该字段的修饰符, 见上面映射关系。

如果多个修饰符, modifiers的值是他们所有单个int值的加和.

如 modifiers=25 -> public+static+final=25

public static final int score = 2;

Talk is cheap , show me the code:

import lombok.extern.slf4j.Slf4j;

/**

* @author weijun.nie

* @date 2020-04-17 23:18

*/

@Slf4j

public class FieldModifiersTest {

public static final int score = 2;

public static volatile int count = 0;

public static void main(String[] args) {

Class clazz = FieldModifiersTest.class;

try {

int modifiersScore = clazz.getField("score").getModifiers();

int modifiersCount = clazz.getField("count").getModifiers();

// modifiersScore = 25 (public+static+final)

log.info("modifiersScore = {}", modifiersScore);

// modifiersScore = 11001

log.info("modifiersScore = {}", Integer.toBinaryString(modifiersScore));

log.info("--------------------------------");

// modifiersCount = 73 (public+static+volatile)

log.info("modifiersCount = {}", modifiersCount);

// modifiersScore = 1001001

log.info("modifiersCount = {}", Integer.toBinaryString(modifiersCount));

} catch (NoSuchFieldException e) {

e.printStackTrace();

}

}

}

[注:] @Slf4j 是lombok的注解, 方便打印日志, 没用过的可以替换为System.out.println理解.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值