# Warnung : should be accessed in static way



## munuel (3. Dezember 2005)

Hallo,

Ich habe folgenden Methode in einer Klasse definiert!
*static final public void Input(){....}*

Wenn ich sie wo aufrufe:
*parser.Input();*

Erhalte ich folgende Warnung:The static method Input() from the type Comm_cb should be 
 accessed in a static way

Ich möchte die Warnung weg bekommen was kann ich tun ?

Viele Grüsse munuel


----------



## teppi (4. Dezember 2005)

Anstatt der Objektreferenz, den Klassennamen verwenden ..

Gruß Stefan

btw: sieht ganz schön abenteuerlich aus ..


----------



## munuel (5. Dezember 2005)

hallo ,

Den Klassen-Namen  anstatt der Objekt -Referenz nehmen wie mach ich das?

Also das ist der Aufruf
*Comm_cb parser = new Comm_cb(System.in);	  

parser.Input();
*

und die Definition in der Klasse Comm_cb
 static final public void Input() throws ParseException {......}

Und wie nehm ich jetzt den Klassen-Namen anstatt Objekt-Referenz? Steh auf dem Schauch   
Viele Grüsse munuel


----------



## janw (5. Dezember 2005)

Ein Tipp: Nimm mal das static aus deiner Deklaration

static final public void Input(){....}

heraus. Also nur noch final public void Input(){....}
Wenn eine Methode static ist, kann sie nicht auf Instanzen aufgerufen werden, so wie du es mit parser.Input() versuchst.

Noch ein Tipp: Methodennamen beginnen üblicherweise mit einem Kleinbuchstaben => input()


----------



## Snape (5. Dezember 2005)

Moin,
und noch ein Tipp:
Lies das Kapitel über die Unterschiede zwischen Instanz- und Klassenvariablen unter Berücksichtigung der static Deklaration noch einmal durch.


----------



## munuel (5. Dezember 2005)

hallo,
Ja danke für  alle die Tipps werd versuchen sie alle zu beherzigen, nur ist es so das ich die Klasse mit JavaCC generiert habe, um Files zu parsen, und jetzt die Werte alle auslesen will und das über die Input methode mache (warum die Gross geschrieben wird ist mir auch rätselhaft).
Aber es kann natürlich auch sein das man  die Daten anders rausholen sollte  ,werd ich  auch noch mal die JavaCC doc durchlesen müssen!

Viele Grüsse munuel


----------



## teppi (5. Dezember 2005)

Na anstatt:
Comm_cb parser = new Comm_cb(System.in);
parser.Input();

einfach:
Comm_cb.Input();

Aber wenn du in Input() (was so aussieht) auf System.in zugreifst, dann is sowieso was im Argen ..


----------

