读书人

有一有关问题

发布时间: 2013-04-07 12:50:11 作者: rapoo

有一问题?
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是一个数字保存了这个方法的很多标志

读书人网 >J2SE开发

热点推荐