Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java: not a statement



Thomas Engelke
30-09-2003, 11:10
Erstaunlich. Folgender Code gibt Fehlermeldungen:

import java.io.*;
import java.net.*;
import java.util.*;

class adBay {
public adBay ( String strArticleFile ) {
};

public static void main ( String[] args ) {
if ( args[0]!=null )
adBay adBay1 = new adBay ( args[0] );
else
System.out.println ( "Du Depp. Articlefile angeben ...\n" );
};
};

Fehlermeldungen:

adBay.java:42: not a statement
adBay adBay1 = new adBay ( args[0] );
^
adBay.java:42: ';' expected
adBay adBay1 = new adBay ( args[0] );
^
2 errors

Ich bin jetzt ziemlich verunsichert, das Problem ist mir bei weitem nicht klar. Leider befürchte ich jedoch ein PEBKAC und würde deshalb gerne kleinlaut hoffen, daß sich jemand meiner erbarmt und mich auf den Fehler hinweist.

Danke,

AD!

ultimasephrioth
30-09-2003, 11:46
Vielleicht hilfts wenn du dich an die Java-Konventionen hälst und die Klasse adBay gross schreibst? Ausserdem würde ich beim if Klammern setzen, vor allem wenn man ein else hat, aber das ist wohl ein persönlicher Geschmack.

Thomas Engelke
30-09-2003, 11:53
Absolut erstaunlich, Sephi, dein letzterer Hinweis war genau richtig. Bevor ich jetzt jedoch die Sinnfrage stelle, freue ich mich lieber über den Erfolg. Danke!

AD!

Boron
30-09-2003, 15:52
Die Sinnfrage sollte man wirklich sehr selten stellen :).

Es ist nun mal Konvention, dass Klassennamen groß geschrieben werden.

Und die Klammern bei
if ( /*Bedingung*/) {
// Code
}
else {
// mehr Code
}dienen der Übersichtlichkeit, also immer schreiben.
Wenn du den Code in x Monaten/Jahren mal wieder anschaust, willst du, oder eine andere Person ihn ja auch verstehen können.

peschmae
30-09-2003, 17:37
ich finde es macht Sinn.

Schliesslich müssen so alle ihre Klassennamen grossbuchstabig beginnen. Das ist dann nicht mehr nur sowas was irgendeiner mal empfohlen hat.

Das hilft im Fall echt :cool:

MfG Peschmä

P.S. ist auch Praktisch wenn du alle Konstanten (ich meine die final <xy>) Gross mit Underscores schreibst (dazu zwingt dich der Compiler aber nicht ;))

anda_skoa
30-09-2003, 19:32
Original geschrieben von peschmae
Schliesslich müssen so alle ihre Klassennamen grossbuchstabig beginnen. Das ist dann nicht mehr nur sowas was irgendeiner mal empfohlen hat.


Entweder ist das neu, oder eine falsche Vermutung.
Das hier kompiliert mit dem javac von Blackdown1.3.1 einwandfrei



public class javatest
{
public static void main(String[] args)
{
javatest t = new javatest();
t.foo();
}

private void foo()
{
System.out.println("foo");
}
}


Ciao,
_

wraith
30-09-2003, 20:05
Original geschrieben von anda_skoa
Entweder ist das neu, oder eine falsche Vermutung.
Das hier kompiliert mit dem javac von Blackdown1.3.1 einwandfrei

Sicherlich kompiliert das fehlerfrei.Die Sache mit den Großbuchstaben ist nur eine Konvention,um die Lesbarkeit zu erhöhen,wird aber nicht von der Sprache Java oder dem Compiler erzwungen.

Zum Originalcode.
Die Java-Grammatik definiert ein Auswahlstatment zb. so
selection-statement -> if (boolean-exp) statement.
Nun ist aber eine Variablendeklarration in Java kein statement,aber ein {} ist ein statement,daher funktioniert die Variante mit den zusätzlichen Klammern.

Und das die zusätzlichen Klammern immer die Lesbarkeit erhöhen halte ich für ein Gerücht ^^.