Ich habe die folgenden Methoden in einer Klasse:Java Überlastung mit generischen Typparametern
void delete(ClassA a) {
//....
}
void delete(ClassB b) {
//...
}
void delete(List<ClassA> list) {
for (ClassA a: list) {
delete(a);
}
}
void delete(List<ClassB> list) {
for (ClassB b: list){
delete(b);
}
}
Die Überlastung für die ersten beiden Methoden gut funktioniert. Aber es gibt einen Konflikt zwischen der dritten und der vierten Methode.
Ist es möglich, sie durch eine Methode zu ersetzen? Ich habe versucht, die folgende Methode, die nicht korrekt ist:
void delete(List<? extends Object> list){
for (Object o: list){
delete((o.getClass())o);
}
}
Wie kann ich den Klassentyp der Instanz in der Liste zur Laufzeit und rufen Sie die entsprechende Methode erkennen?
Verwenden Sie 'instanceof', um das Objekt zu überprüfen – soorapadman