エラーについて読んだnon-static variable this cannot be referenced from a static context
のですが、なぜ私の場合(行return new CommandParser1(command);
)でエラーが発生するのかわかりません。クラスのインスタンスを作成するだけです。それで全部です。何が問題ですか?
public class ProtocolUtility {
public static CommandParser createParser(String command) throws Exception {
switch (command) {
case COMMAND_1:
return new CommandParser1(command);
case COMMAND_2:
return new CommandParser2(command);
default:
return null;
}
}
public abstract class CommandParser {
protected String command;
public String getCommand() {
return command;
}
}
public class CommandParser1 extends CommandParser {
public CommandParser1 (String command){
//...
}
}
public class CommandParser2 extends CommandParser {
public CommandParser2 (String command) {
//...
}
}
}