Objektmethode aus Konstruktor aufrufen?

Status
Nicht offen für weitere Antworten.

arettig

Mitglied
Hallo,
ich bastel gerade an einer Klasse, die u.a. einen Konstruktor hat, der eine Objektmethode des erzeugten Objektes aufrufen soll, per this.Objektmethode.
Java weigert sich aber mit Cannot find symbol, diese Objektmethode zu erkennen.

Ungefähr so:

Code:
public "Klassenname"(Collection<? extends K> c) {
     this(c.size()); //ruft einen anderen Konstruktor auf
     for(Iterator i=c.iterator();i.hasNext();){ //soll die Elemente aus c mit der add-methode dazufügen
	    this.add(i.next());
	 }

Wo mache ich den Denkfehler? Ich schnall's nicht :(

Danke !!!

EDIT: Ich muss das wohl nach (K) casten, oder?
 
B

Beni

Gast
"i.next()" liefert immer ein Objekt vom Typ "K" zurück, da musst du nichts mehr casten.

Grundsätzlich sieht der Code korrekt aus; existiert denn tatsächlich eine "add" Methode, welche ein "K" nimmt? Zeig doch mal den ganzen Code.

P.S, man kanns auch mit weniger Schreibaufwand machen :wink: :
Code:
...
for( K k : c ){
  add( k );
}
...
 

lhein

Top Contributor
Weniger ist nicht immer mehr. Vergleich mal beide Varianten und sag ehrlich was lesbarer ist.

lr
 

arettig

Mitglied
Erstmal vielen Dank!

Die Anführungszeichen sind natürlich nur für das Posting :)

Die Add-Methode nimmt K-Objekte, das ist kein Problem. next ist auch vom Typ K. Trotzdem funktioniert das NUR, wenn ich nochmal nach K caste...verstehe ich noch nicht... :cry:
 

byte

Top Contributor
LR hat gesagt.:
Weniger ist nicht immer mehr. Vergleich mal beide Varianten und sag ehrlich was lesbarer ist.

Benis For Schleife ist halt genau für die Iteration durch Collections gemacht, also sollte man sie auch benutzen. Dann braucht man sich auch nicht zu fragen, warum man casten muss denn...

Code:
Iterator i=c.iterator()

liefert einen nicht-generischen Iterator, der Objects liefert. Das casten fällt erst bei Benis Schleife weg oder bei:

Code:
Iterator<K> i=c.iterator()

@Threadersteller: Wie sieht denn der andere Konstruktor aus, den Du mit this() aufrufst? Offenbar findet er den ja nicht, wie Du schon bemerkt hast.
 

arettig

Mitglied
@byto: Du hast es genau erfasst...wenn man Iterator<K> verwendet, geht es natürlich. Aber mittlerweile bin ich auf die schlaue Idee gekommen, einfach die addAll-methode zu benutzen, die ich erbe... :)

Wobei unser Prof heute auch nicht gleich auf den Fehler gekommen ist und erstmal ein Compilerfehler vermutet hat! :)

Auf jeden Fall habe ich gerade dazugelernt, dass man die sichere For-Schleife auch für collections nehmen kann :) :) cool!

Danke Euch! Echt klasse, diese Foren!!!!
 

Leroy42

Top Contributor
byto hat gesagt.:
LR hat gesagt.:
Weniger ist nicht immer mehr. Vergleich mal beide Varianten und sag ehrlich was lesbarer ist.

Benis For Schleife ist halt genau für die Iteration durch Collections gemacht, also sollte man sie auch benutzen. Dann braucht man sich auch nicht zu fragen, warum man casten muss denn...

Ich würde es auch so sagen, daß Beni's Schleife leserlicher ist, wenn man etwas abstrakter
denkt:

Foreach k of type K in collection do : add(k)

Die technischen, für die eigentliche Bedeutung wenig hilfreichen,
Details, kann man sich dabei dann schenken.

arettig hat gesagt.:
Auf jeden Fall habe ich gerade dazugelernt, dass man die sichere For-Schleife auch für collections nehmen kann :) :) cool!
:shock: Was meinst du mit sichere For-Schleife? Bzw. was ist eine unsichere?
arettig hat gesagt.:
Danke Euch! Echt klasse, diese Foren!!!!
Hätt' ich während meiner Studienzeit auch gern gehabt *schwelg"
 

AlArenal

Top Contributor
Ihr Penner.. meinereiner musste noch Pascal, C/C++ ran. VOn den armen Schweinen, die Haskell & Co. machen mussten und müssen, mal ganz zu schweigen ;)
 

arettig

Mitglied
Pascal hab' ich auch mal gemacht und C (++) bleibt uns auch nicht erspart.

icon_eek.gif Was meinst du mit sichere For-Schleife? Bzw. was ist eine unsichere?

Ich kenne Benis for-Schleife als "sichere" For-Schleife. Sie kann halt niemals zur Endlos-Schleife werden, während die "normale" for-schleife bei uns an der FH "unsicher" heisst. Aber das ist dann wohl kein gängiger Terminus?
 

Leroy42

Top Contributor
Contents of Adress Register
Contents of Displacement Register[/b][/b]

Ich fand's nicht schlimm und denke eher daß Programmierer,
die nie ihre einseitige, imperative, kleine Welt verlassen haben,
etwas verpaßt haben. :cool:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Parameter Konstruktor plus rechnen Allgemeine Java-Themen 6
M Konstruktor einer Methode Allgemeine Java-Themen 35
M Frage zum Konstruktor Allgemeine Java-Themen 2
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
J Konstruktor in JSP beim Kompilieren nicht gefunden Allgemeine Java-Themen 3
J Inner class + Leer-Konstruktor Allgemeine Java-Themen 1
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
H Beim Konstruktor "this" Allgemeine Java-Themen 4
K Variablen Konstruktor, unendlich viele Allgemeine Java-Themen 3
T Konstruktor löst exception aus Allgemeine Java-Themen 7
C Klassen und Konstruktor Allgemeine Java-Themen 2
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
M Klassen Klasse Dynamisch laden und Konstruktor aufrufen Allgemeine Java-Themen 1
DStrohma In abstrakter Klasse Konstruktor von Instanz implementieren Allgemeine Java-Themen 11
C Reflektions, Benutzer soll Konstruktor auswählen und Parameter übergeben können Allgemeine Java-Themen 5
S OOP this-Referenz als Konstruktor-Übergabe Allgemeine Java-Themen 8
ruutaiokwu NullPointerException auf member, die per konstruktor gesetzt wird (multithread-kontext) Allgemeine Java-Themen 2
ruutaiokwu auf priv. konstruktor von "aussen" zugreifen? Allgemeine Java-Themen 4
A Methoden laufen im Konstruktor, außerhalb allerdings nicht Allgemeine Java-Themen 2
E Array im Konstruktor übergeben Allgemeine Java-Themen 3
A Reflection Konstruktor Parameter Supertyp Allgemeine Java-Themen 2
X Dynamisch Konstruktor aufrufen Allgemeine Java-Themen 12
J abstrakte Klassen, Konstanten und Konstruktor Allgemeine Java-Themen 9
E Finale Attribute und Konstruktor Allgemeine Java-Themen 3
S Konstruktor ermitteln Allgemeine Java-Themen 3
B Konstruktor wird nicht aufgerufen Allgemeine Java-Themen 4
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
B Konstruktor - Vererbungsproblem Allgemeine Java-Themen 2
S konstruktor vererben Allgemeine Java-Themen 5
B Problem mit Methodenaufruf in Konstruktor Allgemeine Java-Themen 6
D [SOLVED] Collection wird nicht richtig per Konstruktor übernommen Allgemeine Java-Themen 8
S Instanz in einer Klasse erstellen, und dem Konstruktor die eigene Klasse mitgeben Allgemeine Java-Themen 4
M Konstruktor / statischer Block Allgemeine Java-Themen 13
Ark Konstruktor per Reflection nicht bekannt Allgemeine Java-Themen 4
J Klasse auf Konstruktor oder Methode testen? Allgemeine Java-Themen 3
Junktyz Konstruktor Allgemeine Java-Themen 9
T Schleife im Konstruktor? Allgemeine Java-Themen 9
conan2 super-super-Konstruktor? Allgemeine Java-Themen 3
P static-Methode aus dem Konstruktor aufrufen Allgemeine Java-Themen 6
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
MQue zaehlen im Konstruktor Allgemeine Java-Themen 3
V Initialisierung nur im Konstruktor? Allgemeine Java-Themen 14
J Konstruktor-Aufruf nur aus einem bestimmten Package erlauben Allgemeine Java-Themen 5
T Konstruktor von Hashtable unter Java 5.0! Allgemeine Java-Themen 3
M Feld initialisieren, direkt oder Konstruktor Allgemeine Java-Themen 2
D super-Konstruktor ist nicht super ;) Allgemeine Java-Themen 6
7 Konstruktor Allgemeine Java-Themen 12
M Konstruktor, der Excpetions wirft Allgemeine Java-Themen 2
H Super-Konstruktor Allgemeine Java-Themen 7
A Exception in Konstruktor - trotzdem wird Objekt erzeugt! Allgemeine Java-Themen 3
S Konstruktor vererben Allgemeine Java-Themen 9
thE_29 String Konstruktor - Umwandlungsprobleme Allgemeine Java-Themen 5
J Probleme mit dem Konstruktor Allgemeine Java-Themen 8
G Konstruktor-Aufruf nun mit oder ohne Typ? Allgemeine Java-Themen 9
D Kein public Konstruktor Allgemeine Java-Themen 4
K Exception im Konstruktor / Objekt == null Allgemeine Java-Themen 7
S konstruktor nur innerhalb der klasse aufrufbar Allgemeine Java-Themen 5
S konstruktor im interface Allgemeine Java-Themen 5
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
J Aus JavaProgramm Setup Exe aufrufen Allgemeine Java-Themen 9
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
Lukasbsc JDA-Bot Webseite aufrufen Allgemeine Java-Themen 0
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
L Methoden Über Reflections eine Methode mit aufrufen Allgemeine Java-Themen 3
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
L Mehrere .Jar Files aufrufen Allgemeine Java-Themen 9
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
P Methode aus anderem Paket aufrufen Allgemeine Java-Themen 1
J Überschriebene Funktion soll nicht die super Funktion aufrufen Allgemeine Java-Themen 4
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
Javafan01 Website in Java aufrufen Allgemeine Java-Themen 1
C php-Website mit Proxy aufrufen Allgemeine Java-Themen 6
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
C Dateien in Jar aufrufen Allgemeine Java-Themen 14
sandaime CMD aufrufen und aktuellen pfad ändern Allgemeine Java-Themen 11
J OpenOffice Makro aufrufen Allgemeine Java-Themen 2
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
Ananaskirsche Website mit Browser-Check aufrufen Allgemeine Java-Themen 8
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
S Überschriebene Methode der Oberklasse der Oberklasse aufrufen. Allgemeine Java-Themen 5
D Methode dynamisch aufrufen Allgemeine Java-Themen 2
D VBScript in .jar einbinden und aufrufen Allgemeine Java-Themen 5
J Console aufrufen Allgemeine Java-Themen 1
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
A Funktionen aufrufen nach Schema x Allgemeine Java-Themen 2
B Datei innerhalb des JARs von einer statischen Methode aufrufen Allgemeine Java-Themen 4
D Eclipse Methode einer anderen Klasse aufrufen Allgemeine Java-Themen 14
E Aus MainActivity SubActivity aufrufen, von dort Methode in MainActivity aufrufen Allgemeine Java-Themen 3
B Benutzeroberfläche in anderer Klasse aufrufen Allgemeine Java-Themen 5
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
K JNI: Methoden aus unterschiedlichen Threads aufrufen Allgemeine Java-Themen 3
J java-applikation-1.jar soll java-applikation-2 aufrufen.jar Allgemeine Java-Themen 5
B exe-Datei aufrufen und dort Konsoleneingaben machen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben