【发布时间】:2013-05-03 13:59:59
【问题描述】:
谁能告诉我导师提供的代码中的以下行应该做什么?
if (data.contains(entry))
完整方法:
public String add(Entry entry) {
if (entry == null)
return "Error: null entry";
if (data.contains(entry))
return "Error: this entry already in the book";
boolean done = data.add(entry);
if (done)
return " entry added";
else
return "entry could not be added";
}
我认为它正在检查 ArrayList 中具有相同详细信息的现有条目,但是当我添加重复条目时,它不会进入 if 语句,所以认为我假设错了?我在互联网上搜索,它说它是为此目的,那么为什么它对我不起作用?
【问题讨论】:
-
您是否尝试过比较 if 之外的对象,看看它们是否相同(使用 equals 方法)? docs.oracle.com/javase/6/docs/api/java/util/…
-
@rockskull 没有对这个类中的方法做任何事情,因为我们无论如何都无法修改它。我们扩展了给定的类来创建地址簿。他一定是想让我们以某种方式使用这个包含,否则他们为什么要把它放在那里?
-
另外,值得指出的是,从 Java 方法返回字符串状态是不正常的。相反,如果您没有有意义的返回值,请将其设为
void方法。如果出现问题,抛出异常。 -
@DuncanJones 我只希望我能做到。我们必须在程序中使用异常,我希望将它们从这个类中抛出,但是因为我们不允许修改它,所以我问他我将在哪里包含异常以及他们希望我们将它们放入以验证用户输入在我认为错误的表格上。
-
@ToniHopkins 你的老师听起来是个真正的赢家:-)