![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 17.05.2001
Alter: 52
Beiträge: 80
|
![]() Hi Leutens!
Hab hier ein Problem, bei dem ihr mir sich helfen könnt... Warum!?!?!... kann ich hier (siehe unten) die Methode get_Name() nicht verwenden? Ich greife doch mit elementAt() auf das im Vector befindliche Objekt zu und in weiterer Folge mit get_Name() auf dessen Namen. Wenn ich beispielsweise die Methode get_Name() nach new NamedVector("client_"+i) aufrufe, somit also keine Vectoren im Vector sondern nur deren Namen und somit einen String speicher und danach den Vectorinhalt ausgebe, erhalte ich in der Ausgabe die jeweiligen generierten Namen. nixversteh... G Vector listOfClients=new Vector(); for(int i=0;i<10;i++){ this.listOfClients.add(new NamedVector("client_"+i)); } for(int i=0;i<10;i++){ System.out.println("all clients in list: "); System.out.println(listOfClients.elementAt(i).get_Name()); } ______________________ public class NamedVector extends Vector{ private String vectorname; public NamedVector(String vectorname) { this.vectorname = vectorname; } public void set_Name(String vectorname){ this.vectorname=vectorname; } public String get_Name(){ return vectorname; } } ___________________________
____________________________________
> > > Bei mir gib\'s keine Viren ich hab ne Putzfrau < < < |
![]() |
![]() |
![]() |
#2 |
Quantensingularität
![]() |
![]() Wenn du den Vektor so ableitest, bekommst du mit elementAt aber den Inhalt, also das gespeicherte Objekt zurück. Und das ist ein Objekt und ein Objekt hat die Methode getName nicht.
____________________________________
Was ist klein, grün und dreieckig? Ein kleines grünes Dreieck! Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg! |
![]() |
![]() |
![]() |
#3 |
Elite
![]() |
![]() ((Vector)listOfClients.elementAt(i)).getName();
dieses problem sollt sich beim jdk1.5 mit den generics endlich erübrigt haben konvention für getter/setter in java is übrigens ohne unterstrich
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
![]() |
![]() |
![]() |
#4 |
Jr. Member
![]() Registriert seit: 17.05.2001
Alter: 52
Beiträge: 80
|
![]() Hi!
Danke für eure Antworten! @ Who-T: Leider funktioniert deine Version auch nicht. Auch nicht mit NamedVector. So is es zwar nicht schön, aber es funkt... for(int i=0;i<10;i++){ this.listOfClients.add(new NamedVector("client_"+i)); } System.out.println("all clients in list: "); for(int i=0;i<10;i++){ NamedVector nm=(NamedVector)listOfClients.elementAt(i); System.out.println(nm.get_Name()); } ![]()
____________________________________
> > > Bei mir gib\'s keine Viren ich hab ne Putzfrau < < < |
![]() |
![]() |
![]() |
#5 |
Quantensingularität
![]() |
![]() Der Named Vektor erfüllt lange nicht die Bedingung dass für jedes Objekt ein Name gespeichert wird. Bisher wird nur ein Name gespeichert. Soll für jedes Objekt ein Name gespeichert werden, so muss statt des Strings ein Vektor oder eine ArrayList verwedet werden, die zu jeden Element den Namen speichert. Weiters muss jede Zugriffsmethode (also jedes add, elementAt, remove etc.) überschrieben werden wobei jeder Name hinzugefügt bzw. gelöscht oder ersetzt wird. Dann ist zu jeden Objekt ein Name gespeichert, und kann zB. mit einer Methode getName(i) abgerufen werden.
____________________________________
Was ist klein, grün und dreieckig? Ein kleines grünes Dreieck! Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg! |
![]() |
![]() |
![]() |
#6 |
Elite
![]() |
![]() @zenit
klammerung beachten (NamedVector)list.elementAt(i).getName() -> geht nicht ((NamedVector)list.elementAt(i)).getName() -> geht @tarjan ich habs net verstanden was du meinst, kannst du das nochmal erklären?
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
![]() |
![]() |
![]() |
#7 |
Quantensingularität
![]() |
![]() Der Erklärung nach will er ja für jedes Element einen Namen speichern. So wie es realisiert wurde speichert er aber nur einen Namen für den Vektor. Wenn man für jedes Element einen Namen speichern will, so muss man die Elementzugriffstmethoden auch überschreiben.
____________________________________
Was ist klein, grün und dreieckig? Ein kleines grünes Dreieck! Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg! |
![]() |
![]() |
![]() |
#8 |
Jr. Member
![]() Registriert seit: 17.05.2001
Alter: 52
Beiträge: 80
|
![]() @Who-T
1) Danke für den Hinweis! Hab mich grad eingeloggt, weil ich das Tüfteln nichtlassen konnte und noch nen Kollegen gefragt hab warum's nicht so geht wie ich will. Da sind wir dann auch auf die Klammerung gestossen (was ich eigentlich jetzt hier posten wollte). ![]() 2) Danke für den Hinweis bez. Konventionen @Tarajan 1) behandelnde Funktion... public void addToClientlist(String clientname){ if(listOfClients.add(new NamedVector(clientname))){ System.out.println("Client << "+clientname+" >> added to List!"); } System.out.println("Actual list of clients:"); for(int i=0;i<listOfClients.size();i++){ NamedVector nm=(NamedVector)listOfClients.elementAt(i); System.out.println("\t\t"+nm.get_Name()); } } Ausgabe des Programms... ---------------------------------- Server accepted 3. client request! sending greetings...! Client answered: cr§7§client3 Command: cr Data Length: 7 Client << client3 >> added to List! Actual list of clients: client1 client2 client3 sending eventlist to client3 2) Bitte nochmal erklären was du meinst, hab das auch noch nicht gecheckt...
____________________________________
> > > Bei mir gib\'s keine Viren ich hab ne Putzfrau < < < |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|