java - 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;
}
预先感谢您的帮助 :)
解决方案
从问题中听起来好像它不希望您返回 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));
}
但这一切似乎都很愚蠢。我想也许我们对这个问题有误解。您能否逐字发布问题,以便我们确保我们已经正确理解它?
推荐阅读
- macos - 无法访问 redis docker 卷
- google-bigquery - 在 Google BigQuery 中将更新作为单独的作业/进程执行
- c# - c# - 模块文档 - XML 文档文件
- android - firebase auth 是否提供任何内置功能来避免并发用户会话?
- php - 加速/优化 MySQL 语句 - 查找之前未选择的新行
- swiftui - 由枚举驱动的 SwiftUI 选择器:值未更新
- mysql - 如果 Laravel 查询构建器没有找到与另一个表的连接,则不会返回整行
- elasticsearch - 使用 grok 过滤 Logstash 中的 Apache 错误日志
- angular - 如何在打字稿文件中使用fortawesome?
- python - 如何提取图中所有包含曲线的峰的斜率?