我正在使用自己的游戏引擎,碰到墙使我停下来。在编写游戏代码时,我只会将gameengine.jar用作库。但是我想引用一些带有“ GameEngine”类的类。
在此示例中,我将要使用仅记录错误的“ Logger”类。 GameEngine和Logger都没有构造函数,它们是静态的。
public class GameEngine{
public static Logger logger = Logger; // ERROR
}
class Logger{
static void logError(){
System.out.println("Error");
}
}
我想做GameEngine.logger.logError();
,但不能做。
我可以使用嵌套类,但是两个类都非常长。
答案 0 :(得分:0)
解决方案A:
public class Logger{
public static void logError(){
System.out.println("Error");
}
}
然后从代码中的任何地方:
Logger.logError();
解决方案B,如果您想从顶部的GameEngine调用它:
public class GameEngine{
public static Logger logger = new Logger();
}
(意味着Logger的构造函数不是私有的)
然后从代码中的任何地方
GameEngine.logger.logError();
标准日志记录API
当Java中存在许多API时,没有理由重新实现日志记录API。
例如,有一个众所周知的log4j:https://logging.apache.org/log4j/2.x/manual/api.html
还有Java中的一个标准,可以隐藏实际的记录器实现并提供通用接口(https://www.vogella.com/tutorials/Logging/article.html)