G
gtrw4wtgw43gw4g
Gast
Hallo zusammen,
ich arbeite mich gerade in Generics ein aber komme hier nicht so ganz weiter...
Nach der Übergabe in eine eigene Liste habe ich keinen Zugriff mehr auf die get Funktion.
Ist schwer zu erklären...Code ist unten
Wieso kann ich in der Studentenliste in der Methode
public void add(T pPerson) nicht pPerson.getName machen? Ohne Generics also ohne T würde das alles wunderbar funktionieren...
Danke für Eure Hilfe..
class Person {
String name;
public Person(String string) {
this.name = string;
}
public String getName() {
return name;
}
}
class Student extends Person {
int zahl;
public Student(String string, int i) {
super(string);
this.zahl = i;
}
}
public class PersonenListe<T> {
ArrayList<T> list = new ArrayList<T>();
T pers;
public void add(T pPerson) {
this.pers=pPerson;
list.add(pPerson);
}
}
class PersonenTest {
public static void main(String[] args) {
PersonenListe<Person> personenListe = new PersonenListe<Person>();
personenListe.add(new Person("Hans"));
personenListe.add(new Person("Annelis"));
PersonenListe<Student> studentenListe = new PersonenListe<Student>();
studentenListe.add(new Student("Max", 4711));
studentenListe.add(new Student("Anna", 4712));
studentenListe.add(new Student("Clara", 4713));
}
}
ich arbeite mich gerade in Generics ein aber komme hier nicht so ganz weiter...
Nach der Übergabe in eine eigene Liste habe ich keinen Zugriff mehr auf die get Funktion.
Ist schwer zu erklären...Code ist unten
Wieso kann ich in der Studentenliste in der Methode
public void add(T pPerson) nicht pPerson.getName machen? Ohne Generics also ohne T würde das alles wunderbar funktionieren...
Danke für Eure Hilfe..
class Person {
String name;
public Person(String string) {
this.name = string;
}
public String getName() {
return name;
}
}
class Student extends Person {
int zahl;
public Student(String string, int i) {
super(string);
this.zahl = i;
}
}
public class PersonenListe<T> {
ArrayList<T> list = new ArrayList<T>();
T pers;
public void add(T pPerson) {
this.pers=pPerson;
list.add(pPerson);
}
}
class PersonenTest {
public static void main(String[] args) {
PersonenListe<Person> personenListe = new PersonenListe<Person>();
personenListe.add(new Person("Hans"));
personenListe.add(new Person("Annelis"));
PersonenListe<Student> studentenListe = new PersonenListe<Student>();
studentenListe.add(new Student("Max", 4711));
studentenListe.add(new Student("Anna", 4712));
studentenListe.add(new Student("Clara", 4713));
}
}