Als «bounded-wildcard» getaggte Fragen

14
Was ist PECS (Producer Extends Consumer Super)?
Ackа этот вопрос есть ответы на Stapelüberlauf на русском : Использование Wildcard в Generics Java Ich bin auf PECS gestoßen (kurz für Producer extendsand Consumer)super ) . Kann mir jemand erklären, wie man PECS verwendet, um Verwirrung zwischen extendsund zu lösen super?

2
Java Generics Wildcarding mit mehreren Klassen
Ich möchte ein Class-Objekt haben, aber ich möchte jede Klasse, die es darstellt, zwingen, Klasse A zu erweitern und Schnittstelle B zu implementieren. Ich kann: Class<? extends ClassA> Oder: Class<? extends InterfaceB> aber ich kann nicht beides. Gibt es eine Möglichkeit, dies zu tun?

5
Mockito: Stubbing-Methoden, die den Typ mit begrenzten Wildcards zurückgeben
Betrachten Sie diesen Code: public class DummyClass { public List<? extends Number> dummyMethod() { return new ArrayList<Integer>(); } } public class DummyClassTest { public void testMockitoWithGenerics() { DummyClass dummyClass = Mockito.mock(DummyClass.class); List<? extends Number> someList = new ArrayList<Integer>(); Mockito.when(dummyClass.dummyMethod()).thenReturn(someList); //Compiler complains about this } } Der Compiler beschwert sich über …

6
Java Generics (Platzhalter)
Ich habe einige Fragen zu generischen Platzhaltern in Java: Was ist der Unterschied zwischen List<? extends T>und List<? super T>? Was ist ein begrenzter Platzhalter und was ist ein unbegrenzter Platzhalter?

5
Java: Begrenzte Platzhalter oder gebundene Typparameter?
Kürzlich habe ich diesen Artikel gelesen: http://download.oracle.com/javase/tutorial/extra/generics/wildcards.html Meine Frage ist, anstatt eine Methode wie diese zu erstellen: public void drawAll(List<? extends Shape> shapes){ for (Shape s: shapes) { s.draw(this); } } Ich kann eine Methode wie diese erstellen, und sie funktioniert einwandfrei: public <T extends Shape> void drawAll(List<T> shapes){ for …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.