java - 为什么需要 boolean 返回类型?

标签 java return boolean

<分区>

我有一个使用 ItemOrder 对象的 ShoppingCart 类。

public class ShoppingCart extends ArrayList<ItemOrder> {

我有一个方法可以检查一个对象是否已经存在于数组列表中,如果存在则用新对象替换索引,如果不存在则添加新对象。

public boolean add(ItemOrder order){
    if (super.indexOf(order) != -1){      //ITEM ALREADY IN LIST, REPLACE
        super.remove(super.indexOf(order));
        super.set(super.indexOf(order), order);
    }
    else                                  //ITEM NOT IN LIST, ADD
        super.add(order);
    return true;                          //TO SATISFY RETURN TYPE
}

当我写这个方法时,我没有返回类型。我收到一个错误提示我将返回类型设置为 void,所以我这样做了。然后我得到另一个错误,返回类型必须是 boolean 值。我唯一的问题是该方法本身并不是(至少对我而言)固有的真/假返回。我需要它做的只是在 ArrayList 中添加/替换一个对象,根本不返回任何内容。

为什么这个方法需要一个 boolean 返回类型,我是否可以安全地在末尾简单地抛出 return true;,或者我真的应该对它有一些用处吗?

最佳答案

您的 add 方法覆盖了实现 Collection.addArrayList.add

根据 javadoc Collection.add

returns true if the collection changed as a result of the call

参见:https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#add(E)https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#add(E)

关于java - 为什么需要 boolean 返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39784515/

相关文章:

c# - 在代码块中使用 return 关键字

c++ - 你能解释一下 bool 如何控制循环吗?

函数返回 nil,但应该返回 true 或 false

c++ - 不满足 If 条件但函数仍然返回一些东西

java - Mockito:无法模拟静态和非静态方法

java - Netty 线程重命名Runnable

python:将ascii字符转换为 boolean 数组

python - NumPy 2D 数组 boolean 索引与每个轴

java - 访问 graphQL 查询的选择集

java - 将 JMenuBar 添加到扩展 JFrame 时遇到问题