Jok*_*ker 47 java arrays core modifier
据我所知,应该打印以下代码False,但是当我运行此代码时,它正在打印True.
来自Java文档:
如果整数参数包含abstract修饰符,则返回true,否则返回false.
public class Test{
public static void main(String[] args) {
System.out.println(Modifier.isAbstract(byte[].class.getModifiers()));
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解这种行为吗?
Era*_*ran 49
所述的的Javadoc INT java.lang.Class.getModifiers()指定了应该为部分改性剂数组类型的(例如,被返回final改性剂需要是true与interface改性剂需要是false).另一方面,它没有指定数组类型应该是什么abstract或static修饰符,这意味着返回true或false没有在JDK中记录的决定.因此任何实现都可以选择返回true或false.
int java.lang.Class.getModifiers()
返回此类或接口的Java语言修饰符,以整数编码.修饰符由Java虚拟机的常数公众,保护私人的,最终的,静态的,抽象和接口的; 它们应该使用类Modifier的方法进行解码.
如果底层类是数组类,则其public,private和protected修饰符与其组件类型相同.如果此Class表示基本类型或void,则其public修饰符始终为true,其protected和private修饰符始终为false.如果此对象表示数组类,基本类型或void,则其最终修饰符始终为true,其接口修饰符始终为false.其他修饰符的值不是由本规范确定的.
修饰符编码在Java虚拟机规范表4.1中定义.
| 归档时间: |
|
| 查看次数: |
2524 次 |
| 最近记录: |