Java 我应该如何调用类静态初始化?
我有许多GUI元素类型,在GUI加载后直接在代码中使用它们。除非GUI加载器需要了解现有元素以创建它们,否则这是可以的Java 我应该如何调用类静态初始化?,java,static,annotations,initialization,Java,Static,Annotations,Initialization,我有许多GUI元素类型,在GUI加载后直接在代码中使用它们。除非GUI加载器需要了解现有元素以创建它们,否则这是可以的 public final class VerticalBox extends Element { ... private static final ElementType type; static { type = ElementType.register("VerticalBox", new Elem
public final class VerticalBox extends Element {
...
private static final ElementType type;
static {
type = ElementType.register("VerticalBox",
new ElementType.ICreator() {
@Override
public Element create(GUI gui) {
return new VerticalBox(gui);
}
});
}
@Override
public ElementType getType() {
return type;
}
}
最简单的方法是在每个元素类中创建静态的init
函数,但是我需要为每个元素类调用init
我在JavaEE中看到了一些注释,但它们的工作方式似乎正好相反。我可以从
class
获取所有annotation
,但不能从annotation
获取class
。我在谷歌上搜索了很多这个话题。你想在这里使用某种依赖注入,它会根据需要初始化东西。值得一看的是Spring框架、GoogleGuice或Pico容器
在大多数情况下,使用静态块是个坏主意,因为您没有对它们的完全控制权,这会使单元测试复杂化—测试的顺序很重要。您想在这里使用某种依赖项注入,它会根据需要初始化。值得一看的是Spring框架、GoogleGuice或Pico容器
在大多数情况下,使用静态块是个坏主意,因为您不能完全控制它们,这会使单元测试复杂化—测试的顺序很重要。也许您对静态块感兴趣,或者,如果您的类在多个JAR上分开,您希望保持独立,也许你对这个把戏感兴趣,或者,如果你的类在几个罐子上分开,你想保持独立,那么这个把戏可能适合你