为了账号安全,请及时绑定邮箱和手机立即绑定

无论如何都返回null的方法

无论如何都返回null的方法

MMTTMM 2021-11-24 14:48:50
我在这里发布了两个类(加上创建对象的计算机类)。当我尝试使用我的 findSys 方法时,我的方法无论如何都返回“null”。我试图将用户作为 findSys 参数输入的“search”变量与 null 进行比较,如果它为 null,它应该输出我在“else”子句下的消息。但是,无论如何,它都只是返回 null。卡在这里。
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

您不想比较是否search == null因为search是用户输入。您要检查搜索结果是否为null:


while (!"q".equals(search)) {

    Computer searchResult = cpu1.findSys(search);

    if (searchResult != null) {

        System.out.println(searchResult);

    } 

    else {

        System.out.println("not found");

    }

您还应该将 的返回类型更改findSys为Computer。仅返回 aString限制了该函数的实用性:


public Computer findSys(String c) {

    for (int i = 0; i < sysNumbers; i++) {

        if (systems[i] != null && systems[i].getCpu().equals(c))

            return systems[i];

    }

    return null;

}


查看完整回答
反对 回复 2021-11-24
?
POPMUISE

TA贡献1765条经验 获得超5个赞

好的,


Mopp 先生是对的 - 但我必须在 searchResult 变量之前删除 Computer 类才能使其工作,并创建一个 String 类型的 var 类型,SearchResult。所以这对我有用:


String searchResult;

while (!"q".equals(search)) {

    searchResult = cpu1.findSys(search);

    if (searchResult != null) {

        System.out.println(searchResult);

    } 

    else {

        System.out.println("not found");

    }


查看完整回答
反对 回复 2021-11-24
?
动漫人物

TA贡献1815条经验 获得超10个赞

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

//img1.sycdn.imooc.com//619de0a10001820725150535.jpg


查看完整回答
反对 回复 2021-11-24
  • 3 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信