use*_*232 5 java static idioms initialization
我遇到了以下情况:
class Foo {
static {
// setup for logging and configuration
}
public static void setup() {
// do nothing
}
}
Run Code Online (Sandbox Code Playgroud)
这是惯用的Java代码吗?是否应该避免这种具体原因?
这是在测试套件中找到的.
我最初担心的是理论上可以在不调用#setup()的情况下进行初始化.
这是惯用的 Java 代码吗?
不。
有什么具体原因应该避免这种情况吗?
是的:这很令人困惑,正如对该问题的评论所证明的那样。
我最初担心的是理论上可以在不调用 #setup() 的情况下进行初始化。
我猜想作者担心的是如果不调用 则初始化可能不会setup()
发生。该setup()
方法保证静态初始化程序已执行其“日志记录和配置设置”。据推测,此配置存在副作用,作者试图通过调用空方法来确保这一点。
归档时间: |
|
查看次数: |
532 次 |
最近记录: |