一文讲解Java修饰符判断

开课吧开课吧锤锤2021-07-12 15:24

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

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

   public static boolean isPublic(int mod) {
        return (mod & PUBLIC) != 0;
    }

这个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; 

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

与的概念:  

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

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

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

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

Java修饰符判断

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

以上就是开课吧广场小编为大家整理发布的“一文讲解Java修饰符判断”一文,更多Java教程相关内容尽在开课吧广场Java教程频道。 

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享