猿问

无论如何都返回null的方法

我在这里发布了两个类(加上创建对象的计算机类)。

当我尝试使用我的 findSys 方法时,我的方法无论如何都返回“null”。我试图将用户作为 findSys 参数输入的“search”变量与 null 进行比较,如果它为 null,它应该输出我在“else”子句下的消息。但是,无论如何,它都只是返回 null。卡在这里。


MMTTMM
浏览 157回答 3
3回答

繁华开满天机

您不想比较是否search == null因为search是用户输入。您要检查搜索结果是否为null:while (!"q".equals(search)) {&nbsp; &nbsp; Computer searchResult = cpu1.findSys(search);&nbsp; &nbsp; if (searchResult != null) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(searchResult);&nbsp; &nbsp; }&nbsp;&nbsp; &nbsp; else {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("not found");&nbsp; &nbsp; }您还应该将 的返回类型更改findSys为Computer。仅返回 aString限制了该函数的实用性:public Computer findSys(String c) {&nbsp; &nbsp; for (int i = 0; i < sysNumbers; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if (systems[i] != null && systems[i].getCpu().equals(c))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return systems[i];&nbsp; &nbsp; }&nbsp; &nbsp; return null;}

POPMUISE

好的,Mopp 先生是对的 - 但我必须在 searchResult 变量之前删除 Computer 类才能使其工作,并创建一个 String 类型的 var 类型,SearchResult。所以这对我有用:String searchResult;while (!"q".equals(search)) {&nbsp; &nbsp; searchResult = cpu1.findSys(search);&nbsp; &nbsp; if (searchResult != null) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(searchResult);&nbsp; &nbsp; }&nbsp;&nbsp; &nbsp; else {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("not found");&nbsp; &nbsp; }

动漫人物

对我来说,您的实施非常有效。在这里我附上了截图,可能是你在输入搜索文本时在控制台输入过程中做错了什么。
随时随地看视频慕课网APP

相关分类

Java
我要回答