Innerhalb eines Package wird eine Klassenmethode nicht gefunden.

HPL

Aktives Mitglied
Ich habe in einem Ordner ue8 zwei Dateien. Die eine (Main.java) enthält meine Mainmethode:

Java:
package ue8;
import java.util.*;
import java.util.regex.*;

public class Main{

public static void main(String[] args){

ReadWrite zahl = null;

zahl = new ReadWrite("Ahnung und Idioten", 1);
System.out.println(zahl);

        }
}

...die andere (ReadWrite.java) eine andere Klasse:

Java:
package ue8;
import java.io.*;
import java.util.*;
import java.util.regex.*;

public class ReadWrite {

String datnam;
int c;

    public ReadWrite(String datnam, int c) {

        this.datnam = datnam;
        this.c = c;

Pattern p = Pattern.compile("[A-Z].*\s");
Matcher m = p.matcher("datnam");
        if(m.matches()){

c++;

}

return c;
}

}


Ich will von der Mainmethode aus die ReadWrite-Methode aufrufen. Der Methode werden zwei Argumente, ein String ("Ahnung und Idioten") und ein int (1), übergeben. [A-Z].*\s matcht mit "Ahnung und Idioten" zweimal. 1 soll 2x inkrementiert werden, der Rückgabewert soll also 3 sein. Ich will schlussendlich den Rückgabewert 3 ausdrucken, deshalb steht in der Mainmethode "System.out.println(zahl);".

Das macht er nicht:

...
cannot find symbol
symbol: class ReadWrite
location: ue8.Main
zahl = new ReadWrite(Ahnung und Idioten, 0);

Woran könnte das liegen. mit cd gehe ich in den ue8-Ordner rein, wenn ich das programm laufen alssen will, und es ist sicher, dass er im Suchpfad liegt, also daran kann es nicht liegen.
 
Du hast keine Methode ReadWrite, sondern eine Klasse mit entsprechendem Konstruktor. Dieser besitzt aber keinen Rückgabetyp also geht an der Stelle auch kein return.
 
Was du vorhast würde ich mit einer statischen Methode machen, also
Java:
public class ReadWrite {
  // dein Code

  public static int match( String datnam, int c ) {
    // dein Code
    return c;
  }
}

Und dann aus Main aufrufen mit [c]System.out.println( ReadWrite.match( "Ahnung und Idioten", 1 ) );[/c]

Ein extra Objekt zahl anzulegen ist nicht sinnvoll.
 

Zurück
Oben