首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

有一有关问题

2013-04-07 
有一问题?Method[] methods Person.class.getDeclaredMethods()System.out.print(访问修饰符:)int m

有一问题?
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有什么作用啊?
[解决办法]
&是位运算,modifier和Modifier.PUBLIC返回的都是整数,用这种modifier==Modifier.PUBLIC做判断应该也是可以的,你自己试试吧
[解决办法]
改为modifier==Modifier.PUBLIC  是不行的

modifier是一个数字保存了这个类的很多标志
只要modifier的最后一位是1,它就表示是个public的方法
比方说modifier = 11111111
此时 modifier != Modifier.PUBLIC  
但是 ((modifier & Modifier.PUBLIC) == Modifier.PUBLIC)
仍然是public的



[解决办法]

引用:
改为modifier==Modifier.PUBLIC  是不行的

modifier是一个数字保存了这个类的很多标志
只要modifier的最后一位是1,它就表示是个public的方法
比方说modifier = 11111111
此时 modifier != Modifier.PUBLIC  
但是 ((modifier & Modifier.PUBLIC) == Modi……


有个笔误
modifier是一个数字保存了这个方法的很多标志

热点排行