# Java Generic Wildcard



## pl4gu33 (14. Dez 2011)

Hey,... ich habe folgendes Problem, ich wollte eigentl. 2 Methoden haben die so aussehn :
(die Namen der Klassen sind willkürlich gewählt und dienen nur für das Beispiel )


```
private void vergleicheObjekte(ArrayList<Mensch> list,ArrayList<Mensch> list2){ ... }
        private void vegleicheObjekte(ArrayList<Tiere> list1,ArrayList<Tiere> list2){....}
```

das Problem ist halt, dass es ja nicht geht da da die Methode als schon vorhanden angesehen wird... nun habe ich folgendes gefunden....


```
private void vegleicheObjekte(ArrayList<?> list1,ArrayList<?> list2){

}
```

nun ist Frage, wie kann ich nun auf die Methoden meiner eigentl. Objekte zugreifen... ich hab jetzt an sowas gedacht, dass denke ich ist aber falsch bzw. nicht wirklich eine schöne Lösung 


```
for(int i=0;i<list1.size();i++){
			if(list.get(i) instanceof Tier){
				Tier tier=(Tier) list.get(i);
                                 ....
```

danke schonmal im voraus


----------



## bygones (14. Dez 2011)

wenn die beiden Klassen eine gemeinsamkeit haben (superklasse, interface) kannst du 

```
private void vegleicheObjekte(List<? extends Gemeinsamkeit> list1, List<? extends Gemeinsamkeit> list2){
```
schreiben.

Ansonsten 2 versch. Methodennamen, wenn die nix miteinander zu tun haben


----------



## pl4gu33 (14. Dez 2011)

danke


----------

