passero
Legacy Member
Ik heb nog niet super veel met generic gewerkt. Heb al wat gezocht maar ik vind niet direct wat ik zoek...
Dit is wat ik heb:
Nu heb ik ergens anders een klasse waar ik met het type Document wil werken maar waar ik tegelijkertijd die subklasse van wil gebruiken:
Ik geloof dat ik dit vroeger al eens geprobeerd heb en dat ik toen de fout kreeg dat hij Document niet kon converteren naar SomeDocument.
Nu is de vraag, hetgeen ik hier geschreven heb qua code, is dat correct en zal dit werken? Als dit niet werkt, hoe moet ik dat dan oplossen?
Een ander vraagje en ik vermoed dat dit eerder syntax is. Stel dat ik een ArrayList wil teruggeven van <T extends Document>, hoe schrijf ik dat dan?
Normaal is het ArrayList<Document> maar hoe doe je dat met T extends Document?
(Ondertussen speel ik er ook wat mee dus het kan zijn dat ik ondertussen de oplossing vind, dan zal ik ook de thread updaten).
Dit is wat ik heb:
Code:
public class Document{
...
}
public class SomeDocument extends Document {
public void myMethod();
}
Nu heb ik ergens anders een klasse waar ik met het type Document wil werken maar waar ik tegelijkertijd die subklasse van wil gebruiken:
Code:
public class SomeClass {
public <T extends Document> T getDocument(String id){
Document d = new Document();
return d;
}
public void doSomething(){
SomeDocument d = this.getDocument();
d.myMethod();
}
}
Ik geloof dat ik dit vroeger al eens geprobeerd heb en dat ik toen de fout kreeg dat hij Document niet kon converteren naar SomeDocument.
Nu is de vraag, hetgeen ik hier geschreven heb qua code, is dat correct en zal dit werken? Als dit niet werkt, hoe moet ik dat dan oplossen?
Een ander vraagje en ik vermoed dat dit eerder syntax is. Stel dat ik een ArrayList wil teruggeven van <T extends Document>, hoe schrijf ik dat dan?
Normaal is het ArrayList<Document> maar hoe doe je dat met T extends Document?
(Ondertussen speel ik er ook wat mee dus het kan zijn dat ik ondertussen de oplossing vind, dan zal ik ook de thread updaten).