Java修饰符判断

Wesley13
• 阅读 549

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

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

这个int mod 存在于Field,Method,Constructor中,比如我有一个Field
public String name;
你可以通过
int modifiers = 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修饰符判断

本文分享自微信公众号 - 阿提说说(itsaysay)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
java判断字符串是否为数字或中文或字母
1.判断字符串是否仅为数字:1用JAVA自带的函数public static boolean isNumeric(String str){  for (int i  str.length();i0;){      if (!Character.isDigit(str.charAt(i))){
Wesley13 Wesley13
2年前
java基础类库
java类库的基本介绍与用户互动运行Java程序的参数main()方法分析public修饰符:Java类由JVM调用,为了让JVM可以自由调用这个main()方法,所以使用public修饰符把这个方法暴露出来static修饰符:JVM调用这个主方法时,不会先创建该类的对象,然后通过对象来调用该主方法
待兔 待兔
3年前
Dart | 彻底理解Dart中的库与访问可见性
前言无论使用哪一门语言,都不可能在一个函数里实现全部的功能,一定是将整个功能封装到不同函数、类或者库中,这就涉及到封装与可见性的问题。1、没有访问修饰符与Java,C等不同,Dart没有public,protected和private这些成员访问修饰符,也就是说,成员默认都是public的。以
Wesley13 Wesley13
2年前
Java程序设计总复习题50题
Java程序设计总复习题1、编写一个Java程序在屏幕上输出“你好!”。(p13,例11)    //programme name Helloworld.java  public class Helloworld {     public static void main(
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
2年前
Java修饰符类型
修饰符是一种添加到定义以更改其含义的关键字。Java语言有各种各样的修饰符,包括以下两种Java访问修饰符例如:private,protected,public等。Java非访问修饰符例如:static,final等。要使用修饰符,请在类,方法或变量的定义中包含修饰符关键字。修饰符位于语句之前,
Wesley13 Wesley13
2年前
Java 语言的类、属性、方法各有哪些修饰符?简述各修饰符的区别
1、类的修饰符分为:可访问控制符和非访问控制符两种。可访问控制符是:公共类修饰符public非访问控制符有:抽象类修饰符abstract;最终类修饰符final     1、公共类修饰符public:Java语言中类的可访问控制符只有一个:public即公共的。每个Java程序的主类都必须是public类作为公共工