Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Java: statische Methode aus innerer Klasse aufrufen

Dreamforger / 2 Antworten / Baumansicht Nickles

Jetzt wirds ein bischen verwirrend drum reduziere ich den Code mal auf ein Grundgerüst:


-------Outer.java--------------
<pre>


import....


public class Outer extends Script {
  private static class Inner {
    public void method() {
      Container.staticMethod();
    }
  }
}


</pre>


-------------Container.java------------------


<pre>


public class Container {
  public static void staticMethod() {
    //...
  }
}


</pre>


Container.java und Outer.java sind im selben Verzeichnis. Warum bekomm ich einen Compile-Fehler das er die Container class nicht findet (enthält nur statische Methoden, ich hab sie auch schon getrennt übersetzt - funktioniert) ? Was kann ich tun um den Fehler zu eliminieren?


Der Fehler vom Javac ist, natürlich mit anderen Namen:


<pre>


Outer.java: cannot resolve symbol
symbol  : variable Container
location: class Outer.Inner


</pre>
 

bei Antwort benachrichtigen
vergisses Dreamforger „Java: statische Methode aus innerer Klasse aufrufen“
Optionen

Hallo Dreamforger,

Du musst die Environment Variable CLASSPATH auf . setzen, damit alle
Klassen im aktuellen Pfad gefunden werden.

Ansonsten hat folgendes Beispiel bei mir einwandfrei funktioniert:
--------outer.java--------
import java.lang.*;

public class outer
{
public outer()
{
System.out.println("Konstruktor Outer");
inner.imethod();
}
private static class inner
{
public static void imethod()
{
other.staticMethod();
}
}
public static void main( String[] args )
{
outer myinstance = new outer();
}
}
--------Ende outer.java--------

-------other.java-----
import java.lang.*;

public class other
{
public other()
{
System.out.println("Konstruktor other");
}
public static void staticMethod()
{
System.out.println("other.staticMethod()");
}
}
-------Ende other.java-----

Gruss, vergisses

bei Antwort benachrichtigen
Dreamforger vergisses „Hallo Dreamforger, Du musst die Environment Variable CLASSPATH auf . setzen,...“
Optionen

Ich hatte es auch schon rausgefunden, das Forum verschmiss bloß mein Beitrag. Es lag wirklich daran das ich den CLASSPATH verändert hatte und damit den default von "." überschrieb.

bei Antwort benachrichtigen