gpt4 book ai didi

单独文件中的 Java 静态嵌套类

转载 作者:行者123 更新时间:2023-12-05 07:04:06 26 4
gpt4 key购买 nike

我正在开发自己的游戏引擎,但遇到了阻碍我前进的墙。当我编写游戏代码时,我将简单地使用我的 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(); 但做不到。
我可以使用嵌套类,但两个类都很长。

最佳答案

解决方案 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 的构造函数不是私有(private)的)

然后从代码中的任何地方:

GameEngine.logger.logError();

标准日志记录 API

您没有理由重新实现一个日志记录 API,而 Java 中已经存在许多记录 API。

例如众所周知的 log4j:https://logging.apache.org/log4j/2.x/manual/api.html

Java 中还有一个标准来隐藏实际的记录器实现并提供一个通用接口(interface) (https://www.vogella.com/tutorials/Logging/article.html)

关于单独文件中的 Java 静态嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63015249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com