You need to enable JavaScript to run this app. Java编码出现int无法转换为boolean报错 JUnit测试不通过求助
优惠活动
大模型
产品
解决方案
定价
更多

Java编码出现int无法转换为boolean报错 JUnit测试不通过求助

Java代码报错排查与修复方案

核心报错cannot convert int to boolean原因

evenOrOdd方法中if (i2 /= 2)代码存在逻辑错误:/=是赋值运算符,执行后会返回int类型的计算结果,而Java语法要求if括号内必须是boolean类型的判断结果,因此触发类型转换报错。正确的偶数判断逻辑应该使用取模运算i2 % 2 == 0。

其余代码错误梳理

你当前的代码还有多处不符合需求和测试要求的问题:

  • 四个方法的返回值类型全部错误:需求明确要求方法返回对应字符串,测试用例也是对方法返回值做断言,你声明的int、double返回类型不符合要求,且方法内只有打印语句没有return语句,会直接编译失败
  • positiveOrNegative判断逻辑错误:d1 >= 1的条件会漏掉0<d1<1的正数,不符合“大于0即为正数”的要求,正确判断条件应为d1 > 0
  • isHello字符串比较逻辑错误:Java中使用==比较字符串只会对比对象内存地址,不会对比内容,应该使用equals方法做内容比较,同时可以避免空指针异常
  • 多处字符串拼写不匹配:比如isFive方法中The Number is Five首字母大写和需求不一致,isHello方法中The word in not Hello把is错写为in

修复后完整代码

class PP31 {
    public static void main (String args[]) {

    }

    public static String isFive(int num1) {
        if (num1 == 5) {
            return "The number is Five";
        } else {
            return "The number is not Five";
        }
    }

    public static String positiveOrNegative(double d1) {
        if (d1 > 0) {
            return "Positive";
        } else {
            return "Negative";
        }
    }

    public static String evenOrOdd(int i2) {
        if (i2 % 2 == 0) {
            return "Even";
        } else {
            return "Odd";
        }
    }

    public static String isHello(String s1) {
        if ("Hello".equals(s1)) {
            return "The word is Hello";
        } else {
            return "The word is not Hello";
        }
    }
}

修复后所有测试用例均可正常通过。

内容的提问来源于stack exchange,提问作者Sadged123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 13:36:04