私のメソッドが探しているものが見つからない場合は、返り値nullを取得しようとしています。メソッドは、期限(パラメータ)の前に最新の提出物を探しています。パラメータの日付の前に提出がない場合、誰かがこれを得る方法を手伝ってもらえますか?ありがとう!条件が見つからない場合にnullを返す方法は?
// students is a LinkedList
@Override
public Submission getSubmissionBefore(String unikey, Date deadline) {
// TODO Implement this, ideally in better than O(n)
if (unikey == null || deadline == null) {
throw new IllegalArgumentException("Unikey or deadline was null");
}
Date tempDate = null;
int k = -1;
for (int i = 0; i < this.students.size(); i++) {
if (students.get(i).getUnikey().equals(unikey)) {
if (tempDate == null) {
tempDate = students.get(i).getTime();
k = i;
} else if (students.get(i).getTime().before(deadline) && students.get(i).getTime().after(tempDate)) {
k = i;
}
}
}
return students.get(k);
}
場合にnullを返すことができますが、文字列を比較するために、 '=='使用しないでください。あなたはそれをここでやっている: 'students.get(i).getUnikey()== unikey'。代わりに 'equals()'を使用してください。参照:[Javaの文字列を比較するにはどうすればいいですか](https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Jesper
あなたは 'tempDate = ...'あなたの 'else if'の場合。 –