Ich versuche, Generika und Platzhalter in Java 8 um mich herum. Aber ich kann nicht verstehen, warum diese Repository-Methode nicht verspotten kann. Der Code ist ziemlich einfach und sollte daher einfach zu reproduzieren sein.Wie kann ich die Rückkehr von einer generischen Wildcard verspotten
Ich habe diese Zusammenstellung Fehler bekam in "thenReturn" Teil des "wenn"
The method thenReturn(Stream<capture#1-of ? extends Something>) in the type
OngoingStubbing<Stream<capture#1-of ? extends Something>> is not applicable
for the arguments (Stream<capture#3-of ? extends Something>)
der Test:
@Test
public void ItShourReturnStreamFromRepository() {
List<Something> list = new ArrayList<Something>();
list.add(new Something());
Stream<? extends Something> stream = list.stream();
when(someRepository.getStream()).thenReturn(stream);
}
die Klasse:
public class Something {}
das Repository :
public interface SomeRepository{
Stream<? extends Something> getStream();
}
Kann mir jemand helfen? Danke!
Befolgen Sie die Empfehlung des [offiziellen Tutorial] (http://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.html): * Die Verwendung eines Platzhalters als Rückgabetyp sollte vermieden werden ... * – Holger
Wie wäre es, der Schnittstelle einen Typ hinzuzufügen? 'Interface SomeRepository {Stream getStream(); } ' –