FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

Arraylist in Java

Arraylist in Java 2005-06-24 14:57
Connor
In BlueJ hab ich ne Arrayliste hingekriegt, aber Eclipse meckert bei gleichen Code rum. Wie krieg ich das in Eclipse rein?



import java.util.*;

public class Vorstellungsliste
{
public ArrayList al;

public Vorstellungsliste()
{
boolean _enthalten;
ArrayList<String> a = new ArrayList<String>(0);
al = a;
al.add("Titel2");
if (!schonenthalten("Titel"))
{
al.add("Titel");
}
}

public boolean schonenthalten(String string)
{
boolean enthalten = false;
for (int i = 0; i < al.size();i++)
{
String s = (String) al.get(i);
if (string == s)
{
enthalten = true;
}

}
return enthalten;
}

}

Re: Arraylist in Java 2005-06-24 14:58
UncleOwen
In BlueJ hab ich ne Arrayliste hingekriegt, aber Eclipse meckert bei gleichen Code rum.

Sorry, Glaskugel ist in Reparatur. Was hat Eclipse denn zu meckern?

Re: Arraylist in Java 2005-06-24 15:07
GroßerSchöpfer
In BlueJ hab ich ne Arrayliste hingekriegt, aber Eclipse meckert bei gleichen Code rum.

Sorry, Glaskugel ist in Reparatur. Was hat Eclipse denn zu meckern?

Meine Glaskugel sagt, das Eclipse des Posters ist nicht auf Java 1.5 eingestellt, und medet deswegen Syntaxfehler.

Re: Arraylist in Java 2005-06-24 15:09
Slater
mein Eclipse meckert bei ArrayList
(Invalid expression as a statement)

vielleicht zu alte Java-Version für so ein hohes Sprachkonstrukt?

mir fällt dazu nur ein:
Window, Preferences, Java, Compiler, Compliance, Compliance Level hoch stellen auf wohl 1.5 wenn möglich,

bei mir nicht möglich ;)

Re: Arraylist in Java 2005-06-24 15:37
Anonymer User
Also bei mir mekert er nicht. Ich habe den Code bisschen geändert. Aber sonst funks. [img]http://www.fb18.de/gfx/12.gif[/img]

import java.util.*;

public class Vorstellungsliste
{
public ArrayList al;

public Vorstellungsliste()
{
boolean _enthalten;
al = new ArrayList();
al.add("Titel2");
if (!schonenthalten("Titel"))
{
al.add("Titel");
}
}

public boolean schonenthalten(String string)
{
boolean enthalten = false;
for (int i = 0; i < al.size();i++)
{
String s = (String) al.get(i);
if (string == s)
{
enthalten = true;
}

}
return enthalten;
}

}

Re: Arraylist in Java 2005-06-24 15:58
UncleOwen
Also bei mir mekert er nicht. Ich habe den Code bisschen geändert.

Kein Wunder, wenn man auf alle Java-1.5-Features verzichtet, compilierts mit 'nem 1.4er-Compiler. Whow.

Re: Arraylist in Java 2005-06-24 16:22
Connor
Die Version ohne <String> tuts auch muss ich halt sehen das ich noch prüfe ob das vom typ String ist.

ich liebe Java…

ArrayList vorstellungsListe = new ArrayList(0);
String s = "test";
vorstellungsListe.add(s); <— Hier mekert java wieder rum, dabei sagt die
API: add(E o) Appends the specified element to the end of this list.


2 Syntax error on token "s", VariableDeclaratorId expected after this token MiniKinoService_test.java

Re: Arraylist in Java 2005-06-24 19:38
Slater
zum Glück sind Eclipse und Java ja deterministisch,
wenn also ein Fehler angezeigt wird dann kannst du dir auch recht sicher sein dass du da was falsch gemacht hast

vorstellungsListe.add(s);
darf nur innerhalb von Operationen/ Konstruktoren stehen,
das ist ja keine Variablendeklaration

——-

da du die API zitierst glaubst du anscheinend das es an einem falschen Argument lag,
da käme dann als Fehlermeldung 'the method … is not applicable for arguments …'

ok ich gebs zu, aus Fehlermeldungen schlau zu werden ist ne Kunst für sich,
aber kein Tipp dazu kann schaden ;)

Re: Arraylist in Java 2005-06-24 22:54
Brokkoli
also grade bei java sind die fehlermeldung oft relativ einfach zu verstehen ;) bei anderen sprachen ist das oft deutlich schlimmer.

und wenn er sagt "VariableDeclaratorId expected", meint er das ja auch genau so ;) (wie slater schon sagte)

Re: Arraylist in Java 2005-06-24 23:32
Anonymer User
Da das noch keiner so ausdrücklich gesagt hat: Java 1.5/5.0 wird erst ab Eclipse 3.1 unterstützt. Das wird diese Tage veröffentlicht, wobei die spätere Milestones und natürlich auch die Release Candidates schon sehr gut einsetzbar sind.

Also bei mir mekert er nicht. Ich habe den Code bisschen geändert.
Kein Wunder, wenn man auf alle Java-1.5-Features verzichtet, compilierts mit 'nem 1.4er-Compiler. Whow.
Wobei das einzige 1.5-Konstrukt in dem anfänglichen Programm auch überflüssig ist, da die spezielle ArrayList sofort einem Attribut zugewiesen wird, dessen Typ nur eine allgemeine ArrayList ist. Und bei den Java-Generics findet Typprüfung ja gerade nur beim Compilieren statt, nicht zur Laufzeit. (Bitte jetzt keine billigen Kommentare zu diesem "Feature". Billig wäre: "C++ Templates sind viel besser". Nicht billig wäre: Bruce Eckels Kritik zu Generics und Erasure lesen, verstehen und dann auf diesem Niveau reden).

Aber, OK, das Programm war ja eh nicht "sinnvoll".

vorstellungsListe.add(s);
darf nur innerhalb von Operationen/ Konstruktoren stehen,
das ist ja keine Variablendeklaration
Häh? Wieso das? Ist doch eine korrekte Anweisung und bei mir compiliert und läuft das auch. (jdk 1.4.schießmichtot)

LEIFer

Re: Arraylist in Java 2005-06-24 23:38
Fred
darf nur innerhalb von Operationen/ Konstruktoren stehen,
das ist ja keine Variablendeklaration
Häh? Wieso das? Ist doch eine korrekte Anweisung
Und Anweisungen dürfen nur innerhalb von Operationen auftreten, NICHT aber z.B. direkt nach der Deklaration von Exemplarvariablen.

Re: Arraylist in Java 2005-06-25 00:00
Connor
Naja muss ich das halt wie alles in den scheiss Testklassen und zusicherung 10 fach schreiben. als ob man da nichts besseres machen könnte als alles so oft zu schreiben

Re: Arraylist in Java 2005-06-25 00:13
Anonymer User
Und Anweisungen dürfen nur innerhalb von Operationen auftreten, NICHT aber z.B. direkt nach der Deklaration von Exemplarvariablen.
Ach, so war das "innerhalb von …" gemeint.

Für mich war selbstverständlich, daß diese drei Zeilen innerhalb einer Methode stehen, dort nur ausgeschnitten und ohne diesen Kontext hier eingefügt wurden. Und in einer Methode ist das eben [strike] korrektes [/strike] compilierbares und lauffähiges Java.

LEIFer

Re: Arraylist in Java 2005-06-25 11:16
Fred
Naja muss ich das halt wie alles in den scheiss Testklassen und zusicherung 10 fach schreiben. als ob man da nichts besseres machen könnte als alles so oft zu schreiben
Du kannst die Initialisierung Deiner Testobjekte im Konstruktor oder der setUp() Methode vornehmen, dann brauchst Du das nicht in jeder testMethode machen. Und falls Du in den Zusicherungen sachen sehr oft voraussetzt, dann schreib doch einfach eine eigene Methode dafür. Beispiel:
@require reihe > 0 @require reihe <= gibAnzahlReihen() @require sitz > 0 @require sitz <= gibAnzahlSitzeProReihe Mit den entsprechenden asserts kann man wunderbar einfach ersetzen durch:
@require istGueltigerPlatz(reihe, sitz) Wenn man eine entsprechende Methode schreibt.