Ich bin ein Anfänger in Java, aber ich versuche, die Verwendungen von collection.emptylist() in den Griff zu bekommen. Aus meiner Sicht sollte dies nicht veränderbare Werte zurückgeben.Konnte keine unveränderlichen Daten von collection.emptylist() zurückgeben
ich meinen Code unten enthalten habe:
package com.carfilter;
import java.io.Reader;
import java.util.Collection;
import java.util.Collections;
public class DataFilterer {
public static Collection<?> filterByCar(Reader source, String Car) {
return Collections.emptyList();
}
}
Und die zweite Klasse:
public class CarFiltererExample {
@Test
public void shouldReturnEmptyCollection_WhenLogFileIsEmpty() throws IOException {
String readLine = "";
try{
BufferedReader br = new BufferedReader(openFile("src/test/resources/empty"));
while ((readLine = br.readLine()) != null) {
assertTrue("true",DataFilterer .filterByCar(openFile("src/test/resources/empty"), "Jaguar").contains(readLine));
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
private FileReader openFile(String filename) throws FileNotFoundException {
return new FileReader(new File(filename));
}
}
Und in dem ... empty.file, habe ich folgende
Jaguar, 1865, black
Porsche, 1999, blue
Aston Martin, 2000, red
Was ich versuche, ist, den Wert als wahr zurückzugeben, wenn die Sammlung den Wert des readline-Puffers enthält. Leider ist die Sammlung gerade leer [].
Meine Frage ist es möglich, dies zu erreichen, ohne die DataFilterer-Klasse zu ändern?
'emptyList' gibt eine Liste ohne Elemente zurück. Wie würden Sie erwarten, dass es Elemente filtert oder behält? – Zircon
Ich bin gespannt: Der erste Satz des Javadoc für ['Collections.emptyList()'] (https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#emptyList -) sagt * "Gibt eine leere Liste (unveränderlich) zurück." * Welcher Teil davon ist verwirrend bezüglich des Punktes, an dem die Liste * ist, und * wird immer *, ** leer ** sein? Und da eine leere Liste per Definition nichts enthält, warum würden Sie glauben, dass 'filterByCar (...). Enthält (...)' niemals "falsch" wäre? Oder hast du das Javadoc einfach nicht gelesen? – Andreas