nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Gleiche Klassen-Namen in unterschiedlichen Source-Dateien mit mehr als 1 Klasse.

Von: Helmut Weil (helmut.weil@t-online.de) [Profil]
Datum: 17.09.2008 16:49
Message-ID: <b880c975-1f16-434f-ad5e-11c27ddb1bd3@2g2000hsn.googlegroups.com>
Newsgroup: de.comp.lang.java
Hallo

Folgendes Problem:
*****************************************
Datei Prog1.java
*****************************************
class Neben{
public static void mA{
System.out.println("Methode mA der Klasse Neben");}}

public class Prog1{
/*Irgendwelche Methoden, die
Neben.mA();
aufrufen*/}
************ EOF Prog1.java *******************

Datei Prog2.java
*****************************************
class Neben{
public static void mB{
System.out.println("Methode mB der Klasse Neben");}}

public class Prog2{
/*Irgendwelche Methoden, die
Neben.mB();
aufrufen */}
************ EOF Prog2.java *******************

Datei Prog3.java
*****************************************
public class Prog3{
public static void main( ……..){
Neben.mA();
}
}
************ EOF Prog3.java *******************

Bei javac Prog1.java erzeugt der Compiler die Dateien
Prog1.class
Neben.class !!!!!

Bei javac Prog3.java erzeugt der Compiler die Datei
Prog3.class

java Prog3 liefert die Ausgabe
"Methode mA der Klasse Neben"

Bei javac Prog2.java erzeugt der Compiler die Dateien
Prog2.class
Und Neben.class !!!!!, die die alte Neben.class (s. oben) überschreibt

Damit ergibt sich jetzt bei java Prog3 der Fehler…

Exception in thread "main" java.lang.NoSuchMethodError: Neben.mA()V at
Prog3. main()..

Logisch, weil es die Methode mA in Neben.class nicht mehr gibt,
sondern nur die Methode mB.

Muß man das in JAVA einfach so hin nehmen bzw. ist das der Grund
dafür, weshalb eine Datei nur EINE Klasse (außer inneren) beinhalten
SOLL (nicht DARF)?

Helmut

[ Auf dieses Posting antworten ]

Antworten