作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以解释一下怎么可能吗,该方法 obtain(..) 会为输入 ConfiguratorType.SKODA 抛出 IllegalStateException(变量 configurators 包含 {SKODA=null}) ?怎么可能是null,我不明白为什么SkodaConfigurator.INSTANCE返回null。它永远不应该为空,还是我错了?代码在servlet环境,Java 7中执行。
谢谢
public class CarConfigurators {
private static Map<ConfiguratorType, CarConfigurator> configurators
= new EnumMap<ConfiguratorType, CarConfigurator>(ConfiguratorType.class);
static {
configurators.put(ConfiguratorType.SKODA, SkodaConfigurator.INSTANCE);
// ..
}
public static CarConfigurator obtain(ConfiguratorType type) {
CarConfigurator configurator = configurators.get(type);
if (configurator == null)
throw new IllegalStateException("Car configurator of type " + type + " is not registered.");
return configurator;
}
...
}
public class SkodaConfigurator extends CarConfigurator {
public static final SkodaConfigurator INSTANCE = new SkodaConfigurator();
...
}
public enum ConfiguratorType {
SKODA,
// ..
}
最佳答案
静态代码不能同时运行,静态初始化的各个部分必须按给定的顺序发生。显然,在这种情况下,执行configurations.put(...) 的静态 block 在SkodaConfiguration 中的静态变量初始化之前运行。
关于Java单例-空静态变量(无法解释),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283173/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!