Fehlermeldung ']' expected, Objekterstellung in Laufzeit

Status
Nicht offen für weitere Antworten.
G

geoadel

Gast
Hallo,

ich versuche mich gerade an der Erzeugung von Objekten zur Laufzeit. Ich
glaube zumindest, dass das das ist was ich tue :)
Ich hab mal einen Code-Schnipsel gesehen, in dem das Namengebungsproblem
mit sowas wie name gelöst wurde und verstehe das so, dass die neuen Objekte
dann name1, name2, name3, etc. heißen. Stimmt das überhaupt?
Soweit ich das bisher nachvollziehen kann, sollte das in Bereich Reflections unter Java
fallen, bin mir aber wirklich nicht sicher.

Als Fehlermeldung kommt jedenfalls immer :
']' expected
in bezug auf Zeile 9 - String str - hier meldet der Compiler mit Pfeil unter dem i einen Fehler.
Die Klammern sind soweit ich das jetzt dutzendmal überprüft habe, richtig gesetzt.
Deswegen kann ich die Fehlermeldung leider nicht verstehen und den Fehler auch nicht finden.

Hier nochmal der vollständige Code der RefTest.java-Datei:

Code:
public class RefTest{

        public static void main(String args[])
        {
                int i=0;              
                if ( i<10)
                {
                        i++;
                        String str[i] = new String("Dies ist String Nr. " + i);
                        System.out.println(str[i]);
                }
                else
                {
                        i++;
                        System.out.println("Zahl zu groá");
                }
       }
}


Danke für eure Zeit und eure Hilfe,
geoadel
 
G

Guest

Gast
geoadel hat gesagt.:
Hallo,

ich versuche mich gerade an der Erzeugung von Objekten zur Laufzeit. Ich
glaube zumindest, dass das das ist was ich tue :)
Ich hab mal einen Code-Schnipsel gesehen, in dem das Namengebungsproblem
mit sowas wie name gelöst wurde und verstehe das so, dass die neuen Objekte
dann name1, name2, name3, etc. heißen. Stimmt das überhaupt?
Soweit ich das bisher nachvollziehen kann, sollte das in Bereich Reflections unter Java
fallen, bin mir aber wirklich nicht sicher.


Du meinst sog. Arrays. In einem Array kannst du über einen Indize auf ein Element des Arrays (zu deutsch: Feld) zugreifen.

Code:
                        String str[i] = new String("Dies ist String Nr. " + i);
                        System.out.println(str[i]);

Wenn du ein Array von Strings erzeugen willst kannst du das so machen:

Code:
String str[] = new String[3]; //Array von Strings das 3 Strings aufnehmen kann
str[i] = .... //weise String an Stelle i Wert ... zu

Achtung: Arrays beginnen bei 0 zu zählen.
 

mic_checker

Top Contributor
was ich noch vergessen hab (<- Gast), wenn du denn nun ein Array erzeugen willst, kannst du oben gesehenen Code verwenden:

Code:
public class RefTest {
	public static void main(String args[]) {
		String str[] = new String[11]; //Array mit 11 Elementen
      int i=0;             
      
      if (i<10){
      	i++;
                                              
         str[i] = "Dies ist String Nr. " + i;
         System.out.println(str[i]);                        
      } else {
	   	i++;
         System.out.println("Zahl zu groß");
      }
	}
}
 
G

geoadel

Gast
Erst schonmal vielen Dank für die Antwort,

leider war mein eigentliches Problem, dass ich bei Arrays die Größe vor Start des Programms
schon kennen muss. Das Problem ergibt sich aber z.B. beim Einlesen von Verzeichnis-Inhalten
eines Verzeichnisses mit Bildern. Hier möchte ich, dass das Programm aus jedem Bild
ein ImageIcon-Objekt macht. Da ich vorher nicht weiß, wieviele Bilder da drin sind,
kann ich das zwar natürlich mit einem Array mit Größe 10000 machen, in der Hoffnung,
das das ausreicht. Wirklich befriedigend ist das für mich aber nicht.
Ein ähnliches Problem wäre auch die Erstellung eines Editors, der zur Laufzeit neue Textfenster
öffnen soll, wo auf keinen Fall vorher bestimmt werden kann, wieviele Textfenster vom
Nutzer aufgemacht werden.

Deswegen wollte ich den Array erst zur Laufzeit erzeugen und dann dynamisch auffüllen.


Hier mal das inspirierende Original mit derselben Fehlermeldung (diesmal halt in Zeile 23), die ich leider immer
noch nicht verstehe:

Code:
import java.io.*;
import java.awt.event.*;

public class ListDir{

	public void listDir() throws IOException{

		File f = new File("./images/");
		String[] s;
		int i;
		if (!f.isDirectory()) {
			f = new File(f.getAbsolutePath());
			f = new File(f.getParent());
		}
		for (s=(f.list()), i=0; i<s.length; i++) {
			System.out.print(s[i]);
			f = new File(s[i]);
			if (f.isDirectory())
				System.out.print("*/t");
			else System.out.print(" /t");
			System.out.println(f.length());
			
			ImageIcon im$s[i] = new ImageIcon;
			
			if (s[i].endsWith(new String("GIF"))){
				System.out.println( s[i] + " ist eine Gif-Datei");
				
			
			}
			
		}
	}
}

Ich frag mich, was das Zeichen $ da macht, was das bewirkt und warum bei die Meldung kommt, dass da ein ]
fehle.

Vielen Dank nochmal,
geoadel
 

mic_checker

Top Contributor
geoadel hat gesagt.:
Erst schonmal vielen Dank für die Antwort,

leider war mein eigentliches Problem, dass ich bei Arrays die Größe vor Start des Programms
schon kennen muss. Das Problem ergibt sich aber z.B. beim Einlesen von Verzeichnis-Inhalten
eines Verzeichnisses mit Bildern. Hier möchte ich, dass das Programm aus jedem Bild
ein ImageIcon-Objekt macht. Da ich vorher nicht weiß, wieviele Bilder da drin sind,
kann ich das zwar natürlich mit einem Array mit Größe 10000 machen, in der Hoffnung,
das das ausreicht. Wirklich befriedigend ist das für mich aber nicht.
Ein ähnliches Problem wäre auch die Erstellung eines Editors, der zur Laufzeit neue Textfenster
öffnen soll, wo auf keinen Fall vorher bestimmt werden kann, wieviele Textfenster vom
Nutzer aufgemacht werden.

Deswegen wollte ich den Array erst zur Laufzeit erzeugen und dann dynamisch auffüllen.

Für solche Fälle könnten evtl. Listen von Interesse sein, schau dir dazu mal das Collection Framework von Java an, je nach dem welche Anforderungen du hast kannst du z.B. eine ArrayList oder eine LinkedList holen.

http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/LinkedList.html

Hier mal das inspirierende Original mit derselben Fehlermeldung (diesmal halt in Zeile 23), die ich leider immer
noch nicht verstehe:

Code:
			ImageIcon im$s[i] = new ImageIcon;

Das Dollarzeichen ist Teil des Variablennamens.

Selber Fehler wie bei dir oben:

Code:
ImageIcon im$s[] = new ImageIcon[...];

Durch die Klammer links sagst du ihm nur das du ein Array haben willst, links teilst du ihm mit wie groß es sein soll.

Aber du willst ja scheinbar keine Arrays,sondern Listen wenn ich das recht seh.
 

Illuvatar

Top Contributor
Du kannst auch dein Array beliebig groß machen:
Code:
int i = getLengthOfArrayInComplicatedCalculation();
String[] s = new String[i];
for (int zaehler = 0; zaehler < i; zaehler++){
  s[i] = getArrayContentFor (i);
}

Lies am besten mal ein gutes Buch, wie das hier.
 
G

geoadel

Gast
Werd mir die Möglichkeiten von Listen mal anschauen.
Verstehe die Fehlermeldung halt noch nicht, aber das kommt vielleicht, wenn ich mich
da mehr reinknie.

Nochmal vielen Dank
 

Bleiglanz

Gesperrter Benutzer
Verstehe die Fehlermeldung halt noch nicht, aber das kommt vielleicht, wenn ich mich
da mehr reinknie.

m$s

das Dollarzeichen soll man nicht in Variablennamen verwenden, ganz ganz schlechter Stil

ImageIcon im$s = new ImageIcon; // Syntaxfehler nach new

wie wäres mit new ImageIcon();
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
G Blue J - Fehlermeldung - identifier expected - illegal start Java Basics - Anfänger-Themen 6
P Wieso kommt die Fehlermeldung ".class expected"? Java Basics - Anfänger-Themen 2
Ronny123 Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 1
F Fehlermeldung in Eclipse Java Basics - Anfänger-Themen 13
AllBlack Fehlermeldung Java Basics - Anfänger-Themen 19
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
Ostkreuz Fehlermeldung Java Basics - Anfänger-Themen 1
_so_far_away_ Fehlermeldung "Index 2 out of bounds for length 2" Java Basics - Anfänger-Themen 7
W Texteingabe - Bedeutung Fehlermeldung, Lösung? Java Basics - Anfänger-Themen 18
krgewb Fehlermeldung in web.xml Java Basics - Anfänger-Themen 4
W Warum diese Fehlermeldung? Java Basics - Anfänger-Themen 12
nbergmann Unverständliche Fehlermeldung Java Basics - Anfänger-Themen 56
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
J Fehlermeldung im Checkstyle Java Basics - Anfänger-Themen 11
S Fehlermeldung Java Basics - Anfänger-Themen 7
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
C Fehlermeldung Array zuweisen und printen Java Basics - Anfänger-Themen 22
J Fehlermeldung Java Basics - Anfänger-Themen 22
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
C Fehlermeldung InOut. Java Basics - Anfänger-Themen 7
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
A Fehlermeldung Java Basics - Anfänger-Themen 5
H Comparator Fehlermeldung Java Basics - Anfänger-Themen 5
D Folgende Fehlermeldung bei der Installation von JAVAFX Java Basics - Anfänger-Themen 1
M Java heap space Fehlermeldung beheben Java Basics - Anfänger-Themen 3
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
H fehlermeldung Java Basics - Anfänger-Themen 447
H fehlermeldung Java Basics - Anfänger-Themen 9
T Fehlermeldung beim Starten von FlashTool Java Basics - Anfänger-Themen 27
C Fehlermeldung mit Intger. Java Basics - Anfänger-Themen 3
A Fehlermeldung Java Basics - Anfänger-Themen 3
D Wie kann man eine solche Fehlermeldung abfangen Java Basics - Anfänger-Themen 4
H Fehlermeldung bei der Ausführung eines Compilierten PRGs Java Basics - Anfänger-Themen 9
N Fehlermeldung beim ausführen des Programmes.. Java Basics - Anfänger-Themen 3
x-tshainge Fehlermeldung Java Basics - Anfänger-Themen 2
M Erste Schritte NetBeans Fehlermeldung Java Basics - Anfänger-Themen 2
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
N Fehlermeldung bei Methode Java Basics - Anfänger-Themen 12
I String index out of range Fehlermeldung Java Basics - Anfänger-Themen 4
I Fehlermeldung bei Darstellung von Arrays Java Basics - Anfänger-Themen 2
S Variablen JLabel backImagePanel Fehlermeldung Java Basics - Anfänger-Themen 3
A checkstyle Fehlermeldung Java Basics - Anfänger-Themen 1
G Compiler-Fehler Fehlermeldung Java Basics - Anfänger-Themen 3
Pr0m3theus Fehlermeldung ArrayList add Java Basics - Anfänger-Themen 12
Arabicabohne Fehlermeldung bei Eclipse Java Basics - Anfänger-Themen 23
TheMenox Fehlermeldung / Arrays, Enhanced For Loops Java Basics - Anfänger-Themen 16
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
Henri Fehlermeldung Java Basics - Anfänger-Themen 2
K Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 2
I Fehlermeldung: Java does not contain a main type Java Basics - Anfänger-Themen 1
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
J Bug? Seltsame Fehlermeldung Java Basics - Anfänger-Themen 7
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
L Fehlermeldung Java Basics - Anfänger-Themen 6
J Launcher Fehlermeldung Java Basics - Anfänger-Themen 0
A Fehlermeldung Unklar, google hilft auch nicht weiter Java Basics - Anfänger-Themen 2
H Compiler-Fehler Fehlermeldung Kompilier Java Basics - Anfänger-Themen 4
A Fehlermeldung Unklar. Java Basics - Anfänger-Themen 1
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
D Integer Fehlermeldung exception Java Basics - Anfänger-Themen 4
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
D Fehlermeldung beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 4
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
D Fehlermeldung "com.element.JavaUpload.Manager" Java Basics - Anfänger-Themen 1
S Fehlermeldung bei format methode Java Basics - Anfänger-Themen 1
A Compiler-Fehler Fehlermeldung auf Mac Java Basics - Anfänger-Themen 3
K JDBC - Wie ist Fehlermeldung zu interpretieren Java Basics - Anfänger-Themen 3
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
N Fehlermeldung nicht nachvollziehbar Java Basics - Anfänger-Themen 5
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
C addActionListener(this) - Fehlermeldung Java Basics - Anfänger-Themen 8
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
G Variablen Warum bekomme ich da eine Fehlermeldung? Java Basics - Anfänger-Themen 3
C GUI - SWT - Button-Fehlermeldung Java Basics - Anfänger-Themen 5
F Input/Output IOTools Fehlermeldung: cannot be resolved Java Basics - Anfänger-Themen 16
K Erste Schritte Datei gelöscht - nun Fehlermeldung Java Basics - Anfänger-Themen 2
S Fehlermeldung Java Basics - Anfänger-Themen 8
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
E Fehlermeldung Java Basics - Anfänger-Themen 13
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
J Fehlermeldung reagieren Java Basics - Anfänger-Themen 10
F Array Fehlermeldung... Java Basics - Anfänger-Themen 2
B Fehlermeldung bei Klasse mit array Java Basics - Anfänger-Themen 3
L Erste Schritte Fehlermeldung bei Array-Programm Java Basics - Anfänger-Themen 4
G Fehlermeldung: A fatal error has been detected by the Java Runtime Environment Java Basics - Anfänger-Themen 7
Gugelhupf JDK installieren Fehlermeldung 1336 - Java SDK 7 Update 5 x64 Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben