You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java报错Result of method is ignored的原因及解决方法

报错含义解析

两个报错属于关联的代码提示,具体含义如下:

  • Result of 'barkingDog.shouldWakeUp()' is ignored:出现在main方法的方法调用行,意为你调用了带布尔返回值的shouldWakeUp方法,但既没有把返回值赋值给变量,也没有用这个返回值做打印、逻辑判断等任何操作,方法返回的结果被直接丢弃。
  • Return value of the method is never used:出现在shouldWakeUp方法定义行,意为该方法声明了布尔类型的返回值,但所有调用该方法的位置都没有使用过这个返回值,返回值的设计没有产生实际作用。

除此之外你的代码还存在逻辑bug:没有优先过滤非法时间参数,当传入的小时值小于0或大于23时(比如barking=true, hourOfDay=-1),会被错误判定为满足“早8点前”的条件返回true,不符合业务预期。

修复方案
  1. 调用shouldWakeUp方法后,对返回值做实际使用(赋值给变量、打印输出、作为判断条件都可以),即可消除上述两个报错。
  2. 调整方法内部判断顺序,优先校验时间参数的合法性,修正运算符优先级可能导致的逻辑错误,同时可以简化冗余的分支判断,类名遵循Java大驼峰命名规范做调整。

修正后的可运行代码如下:

public class BarkingDog {
    public static void main(String[] args) {
        // 接收方法返回值并打印,使用返回值消除报错
        boolean wakeUpResult1 = shouldWakeUp(true, 1);
        System.out.println("凌晨1点狗叫是否需要起床:" + wakeUpResult1);

        // 直接在打印语句中调用方法,同样属于使用返回值
        System.out.println("晚上23点狗叫是否需要起床:" + shouldWakeUp(true, 23));
        System.out.println("传入非法时间-1是否需要起床:" + shouldWakeUp(true, -1));
    }

    public static boolean shouldWakeUp(boolean barking, int hourOfDay) {
        // 先校验时间参数合法性,非法时间直接返回false
        if (hourOfDay < 0 || hourOfDay > 23) {
            return false;
        }
        // 时间合法时,狗叫且时间在22点后到早8点前,返回true需要起床
        return barking && (hourOfDay < 8 || hourOfDay > 22);
    }
}

代码运行输出结果:

凌晨1点狗叫是否需要起床:true
晚上23点狗叫是否需要起床:true
传入非法时间-1是否需要起床:false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:01:28