[英]Can't we downcast int to boolean?
根据我的理解,默认情况下,第1行将0视为int
。这就是为什么将int
分配给boolean
会导致编译时错误。 这是正确的吗? 同样,为什么即使在显式向下转换的情况下,第2行也会产生编译错误?
public class HelloWorld
{
public static void main(String[] args)
{
boolean b = 0; //1.compile time error
boolean b = (boolean)0;//2.still compile time error
System.out.print(b);
}
}
Java不支持从int
到boolean
转换。 这是因为在Java中, boolean
不是数字类型。
惯用的方式是编写以下形式的代码
boolean b = n != 0;
其中n
是数字类型。
遵循C语言约定(任何非零值均为true),可以通过表达式
x!=0
将整数或浮点表达式x转换为布尔值。...
boolean
值可以强制转换为boolean
,Boolean
或Object
(第5.5节)类型。 不允许在boolean
类型上进行其他强制类型转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.