Hallo,
Ich habe momentan ein Problem und hoffe auf Eure Hilfe.
Eine bestimmte Klasse hat folgende Signatur und eine bestimmte problematische Methode, die ich hier mal mit angegeben habe.
Bei diesem Versuch erhalte ich immer den Compilerfehler angezeigt:
Kann mir bei diesem Problem jemand auf die Sprünge helfen? Kann ich das in Java gescheit lösen? Wenn ja, wie?
Hinterinformationen:
-> Diese Klasse "MUSS" eine unmodifiableCollection zurückgeben (so ist die Anforderung hierfür)
-> An der API der (für diesen Thread so bezeichneten) SomeAbstractClass kann ich nichts ändern. Über das get() gibt sie selbst ein Objekt vom Typ R zurück
-> Alle weiteren Operationen mit und auf der Collection im Rahmen dieser Klasse funktionieren tadellos. Ich kann lediglich keine Read-Only-Ausgabe der hinterlegten Collection herausgeben.
Für etwas Hilfe bzw. Erläuterung wäre ich sehr dankbar.
Ich habe momentan ein Problem und hoffe auf Eure Hilfe.
Eine bestimmte Klasse hat folgende Signatur und eine bestimmte problematische Methode, die ich hier mal mit angegeben habe.
Java:
public class CollectionClass<T, R extends Collection<T>> extends SomeAbstractClass<R> {
@Override
public R get() {
return Collections.unmodifiableCollection(super.get());
}
}
Bei diesem Versuch erhalte ich immer den Compilerfehler angezeigt:
Incompatible types. Required R but 'unmodifiableCollection' was inferred to Collection<T>: no instance(s) of type variable(s) T exist so that Collection<T> conforms to R
Kann mir bei diesem Problem jemand auf die Sprünge helfen? Kann ich das in Java gescheit lösen? Wenn ja, wie?
Hinterinformationen:
-> Diese Klasse "MUSS" eine unmodifiableCollection zurückgeben (so ist die Anforderung hierfür)
-> An der API der (für diesen Thread so bezeichneten) SomeAbstractClass kann ich nichts ändern. Über das get() gibt sie selbst ein Objekt vom Typ R zurück
-> Alle weiteren Operationen mit und auf der Collection im Rahmen dieser Klasse funktionieren tadellos. Ich kann lediglich keine Read-Only-Ausgabe der hinterlegten Collection herausgeben.
Für etwas Hilfe bzw. Erläuterung wäre ich sehr dankbar.