有一问题?

cht19790826 2013-03-31 05:03:03
Method[] methods = Person.class.getDeclaredMethods();
System.out.print("访问修饰符:");
int modifier = method.getModifiers();
// 判断该方法的访问修饰符
if ((modifier & Modifier.PUBLIC) == Modifier.PUBLIC)
System.out.println("public");
else if ((modifier & Modifier.PROTECTED) == Modifier.PROTECTED)
System.out.println("protected");
else if ((modifier & Modifier.PRIVATE) == Modifier.PRIVATE)
System.out.println("private");
else
System.out.println("default(package)");
下面一句:
(modifier & Modifier.PUBLIC) == Modifier.PUBLIC
为什么要用"&",
改为modifier==Modifier.PUBLIC不行吗?
modifier & Modifier.PUBLIC有什么作用啊?
...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongger520 2013-03-31
  • 打赏
  • 举报
回复
引用 2 楼 yongger520 的回复:
改为modifier==Modifier.PUBLIC 是不行的 modifier是一个数字保存了这个类的很多标志 只要modifier的最后一位是1,它就表示是个public的方法 比方说modifier = 11111111 此时 modifier != Modifier.PUBLIC 但是 ((modifier & Modifier.PUBLIC) == Modi……
有个笔误 modifier是一个数字保存了这个方法的很多标志
yongger520 2013-03-31
  • 打赏
  • 举报
回复
改为modifier==Modifier.PUBLIC 是不行的 modifier是一个数字保存了这个类的很多标志 只要modifier的最后一位是1,它就表示是个public的方法 比方说modifier = 11111111 此时 modifier != Modifier.PUBLIC 但是 ((modifier & Modifier.PUBLIC) == Modifier.PUBLIC) 仍然是public的
富兰克陈 2013-03-31
  • 打赏
  • 举报
回复
&是位运算,modifier和Modifier.PUBLIC返回的都是整数,用这种modifier==Modifier.PUBLIC做判断应该也是可以的,你自己试试吧

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧