首页 > 解决方案 > Java - make boolean isHigherGeneration () 方法返回 YES/NO

问题描述

我的作业有点麻烦。
我必须有一个布尔 isHigherGeneration() 方法,该方法根据它们的生成来比较 2 个 CPU 对象。
我能够让我的代码比较这两个对象,但我需要结果返回 YES/NO 而不是 true/false。
我尝试创建一个字符串并将其转换为布尔值,但它不起作用。有人能帮助我吗?
这是我的代码:

public boolean isHigherGeneration(CPU cpu){
        String YES = "YES";
        String NO = "NO";
        boolean t = Boolean.valueOf(YES);
        boolean n = Boolean.valueOf(NO);

        if (this.generation > cpu.generation)
            return t ;
        else
            return n;
    }

预先感谢您的帮助 :)

标签: javamethodsreturnboolean

解决方案


从问题中听起来好像它不希望您返回 a boolean,但是 aString带有值YES或值NO而不是 a boolean,因此您需要做的是将boolean表达式的结果转换为String带有值YES或值的a NO.

因此,在这种情况下,无需boolean在您的代码中摆弄。您可以比较CPU生成,YES如果值是true并且NO如果值是则返回false

public String isHigherGeneration(CPU cpu) {
    if (generation > cpu.generation) {
        return "YES";
    } else {
        return "NO";
    }
}

编辑:从要求的声音来看,您需要一个boolean返回的方法String,这是不可能的。(这就像说你想买一个苹果但最终得到一个梨。)如果你确实需要一个String结果和一个boolean方法,你可以像这样将它们分成三个:

// Boolean method
public boolean isHigherGeneration(CPU cpu) {
    return generation > cpu.generation;
}
// String method
public String toYesNo(boolean result) {
    if (result) {
        return "YES";
    } else {
        return "NO";
    }
}
// Converter
public String isHigherGenerationYesNo(CPU cpu) {
    return toYesNo(isHigherGeneration(cpu));
}

但这一切似乎都很愚蠢。我想也许我们对这个问题有误解。您能否逐字发布问题,以便我们确保我们已经正确理解它?


推荐阅读