打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文讲解Java修饰符判断

Java反射包里有一个类叫Modifier。里面有许多判断是否public,private等  

比如,判断修饰符是否是public  

   public static boolean isPublic(int mod) {  return (mod & PUBLIC) != 0;
 }123复制代码类型:[java]

这个intmod存在于Field,Method,Constructor中,比如我有一个Field  

publicStringname;  

你可以通过  

intmodifiers=field.getModifiers();  

来获取,如果我要判断该字段的修饰符是否是public,只要通过Modifier.isPublic(modifiers)即可  

那么通过(mod&PUBLIC)!=0怎么就能知道它是否是Public的?  

解释  

PUBLIC是一个常量,16进制是0x00000001,二进制是1  

 /**
  * The {@code int} value representing the {@code public}
  * modifier.
  */
 public static final int PUBLIC  = 0x00000001; 12345复制代码类型:[java]

mod是一个整型,public的十进制是1,转换成二进制也是1  

与的概念:  

二进制与,两边都为1则为1,否则为0  

因此只有两边二进制都相同的时候,才不为0  

那么为什么要用与呢,不能用==吗?  

这里有个问题,a==b怎么优化  

这里不就可以通过与运算来判断嘛  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Field的getModifiers()方法返回int类型值表示该字段的修饰符
java入門試題
JAVA练习
Java基础方法
JAVA速成
学习java必须知道的几件事(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服