Module richtig einbinden

jono

Top Contributor
Ich habe ein Projekt angelegt namens MazeGameProtocol
Java:
import java.io.LineNumberReader;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;

public class CsvReader {

    CommandHandler handler = new CommandHandler();
    commandhandler.setCommandHandler(handler);

    try(

    LineNumberReader read = new LineNumberReader(new StringReader())){
        read.lines()
        .filter(line -> read.getLineNumber() >= 0)
        .forEach(line -> {
            String [] parts = str.split(";");
            
            
            if (parts[0].equals("PSCO")){
                ScoreCommand psco = new ScoreCommand();
            } else if (parts[0].equals("PPOS")) {
                PlayerCommand ppos = new PositionCommand();
            } else if (parts[0].equals("RDY")) {
                ReadyCommand rdy = ReadyCommand();
            } else if (parts[0].equals("QUIT")) {
                QuitCommand quit = QuitCommand();
            } else if (parts[0].equals("MSRV")) {
                VersionCommand msrv = VersionCommand();
            } else if (parts[0].equals("TERM")) {
                TermCommand term = TermCommand();
            } else if (parts[0].equals("WELC")) {
                WelcomeCommand welc = WelcomeCommand();
            } else if (parts[0].equals("MAZE")){
                MazeCommand maze = MazeCommand();
            }
          
        }
        
}

}
und es gibt eine Komponente namens CommandHandler
Java:
public class CommandHandler {

    private CommandHandler handler;

    public void setCommandHandler(CommandHandler handler) {
        this.handler = handler;
    }

}
Die obige Klasse Csv-Reader der Komponente MazeGameProtocol benötigt ja eine Referenz zur Klasse CommandHandler,damit die erstellten Befehlsobjekt in der Csv-Reader Klasse zur CommandHandler Klasse des Komponente "CommandHandler" übergeben werden können.

Java:
module MazeGameProtocol {

    exports de.uni_koblenz.ptsd.papa.mazeclient.protocol;

}

Java:
module CommandHandler {

    
    requires transitive MazeGameProtocol;

    exports de.uni_koblenz.ptsd.papa.mazeclient.handler;

}

Das sind die jeweiligen module.info's. Ich komme da nicht ganz weiter trotz Recherche auf einer guten Internetseite zum Thema.
 
Also prinzipiell bindest du sowas über den build path mit ein und dann sollte eigentlich ein simples import der Klasse reichen 🙂 So ist es zumindest wenn man Projekte ohne Module einbindet
 

Zurück
Oben