我无法通过以下代码在Java中将int转换为boolean

时间:2018-10-14 05:12:28

标签: java casting

public class Typecast {

    public static void main(String[] args) {
        int a=0;
        boolean b=(boolean)a;
        System.out.println(b);
    }
}

这给了我一个错误“无法从int转换为boolean”。有人可以帮忙吗?

6 个答案:

答案 0 :(得分:1)

/*
Usually we represent true by 1 and false by 0. In JAVA a boolean-typed variable can only be false or true, not null.
The input is an integer so it could be a number different than 0 or 1.
To handle the input of such a number,
I choose to make it return false for less than 0 and true for greater than 1.
*/
public static boolean int2bool(int val) {
    if (val <= 0) return false;
    return true;
}

答案 1 :(得分:0)

并非每种类型都可以转换为另一种类型。 intboolean是Java所不允许的一种。 Java Language Specification解释了什么是不可能的。

答案 2 :(得分:0)

您不能在Java中将整数转换为布尔值。 int是原始类型,其值在-2,147,483,648至2,147,483,647范围内,而布尔型为true或false。因此,将数字强制转换为布尔值(真或假)没有任何意义,并且在Java中是不允许的。

您需要检查Java中的基本数据类型,这将使​​您更加清楚。

答案 3 :(得分:0)

您不能将int转换为布尔值;但是您可以将该int与另一个数字进行比较,并且该比较表达式将为布尔类型,例如:

boolean b = (a != 0);

答案 4 :(得分:0)

您在这里的思路是什么?您到底想做什么?

您是否想像二进制中的0将强制转换为false,将1强制转换为true?就像其他人提到的那样,整数是数字数据类型,只能转换为其他数字。

也可以使用包装器类将其转换为字符串。 即: 字符串str = Integer.toString(a)

如果您尝试将0转换为布尔值,请尝试以下代码行来替换第3行:

b =(a!= 0);

如果您

答案 5 :(得分:0)

布尔值是一个具有两个选择的值-真或假,是或否,1或0。
布尔类型不能转换为任何其他数据类型。