Java: “? erweitert habe ich" kann nicht konvertiert werden "? erweitert ich"

Diesem code:

interface I {}

public class Test {

    TableView<? extends I> table;

    Test(ObservableList<? extends I> list) {
        table = new TableView<>();
        table.setItems(list);
    }
}

...produziert diese Meldung:

error: method setItems in class TableView<S> cannot be applied to given types;
       table.setItems(list);
 required: ObservableList<CAP#1>
 found: ObservableList<CAP#2>
 reason: argument mismatch; ObservableList<CAP#2> cannot be converted to ObservableList<CAP#1>
 where S is a type-variable:
   S extends Object declared in class TableView
 where CAP#1,CAP#2 are fresh type-variables:
   CAP#1 extends I from capture of ? extends I
   CAP#2 extends I from capture of ? extends I

Wie kann es einen "type mismatch" zwischen zwei identischen Typen? Was bin ich?

  • Ich hatte gestern einige Früchte. also ? extends Fruit Heute hatte ich etwas Obst. ? extends Fruit. Kann jemand davon ausgehen, dass die Informationen, die ich hatte die gleiche Art von Obst an beiden Tagen? Nein. some fruit #1 vielleicht nicht some fruit #2
InformationsquelleAutor chrox | 2014-02-25
Schreibe einen Kommentar