如何使 java 方法返回在对象列表中找到的对象?[复制]

How can I make a java method return an object found in a list of objects? [duplicate]

提问人:Fooze666 提问时间:3/22/2023 更新时间:3/22/2023 访问量:44

问:

我有这个代码:

    public Task getTask(String taskID) {
        
        for (Task item : tasks) {
            if (item.getTaskID() == taskID) {
                return item;
            }
        }
    }

Task 是对象类型,“tasks”是包含 Task 类型的所有对象的列表。

我想遍历列表并找到taskID匹配的对象。这似乎有效,但是当我尝试测试或运行时,Eclipse告诉我,此方法“必须返回Task类型的结果”。

我不确定我做错了什么。如果每个“项目”都是列表中的一个项目,那么它不应该是 Task 类型吗?

我也尝试过按索引号遍历列表,但这似乎也不起作用。

Java 列表 返回 对象类型

评论

0赞 markspace 3/22/2023
我认为 的定义有问题。你能告诉我们这个变量定义吗?tasks
0赞 markspace 3/22/2023
或者,在循环的最后一个大括号之后,如果未找到对象,则应返回。fornull
0赞 Thomas Kläger 3/22/2023
问题在于,每次调用方法时都必须返回一些内容。目前的编写方式是,如果列表中没有具有您作为参数传递的特定任务,它不会返回任何内容 - 但即便如此,您的方法也必须返回某些内容(或抛出异常)。taskID

答:

2赞 Mitsuo Mori 3/22/2023 #1

您可以使用 equals() 方法,而不是使用 '==' 来比较字符串。 这是因为“==”比较的是对象引用,而不是字符串本身的内容。

public Task getTask(String taskID) {
    for (Task item : tasks) {
        if (item.getTaskID().equals(taskID)) {
            return item;
        }
    }
    return null;
}