gpt4 book ai didi

java - 我应该如何调用类静态初始化?

转载 作者:行者123 更新时间:2023-11-29 09:11:28 38 4
gpt4 key购买 nike

我有很多 GUI 元素类型,在 GUI 加载后直接在代码中使用它们。除非 GUI 加载器需要了解现有元素才能创建它们,否则这没问题。

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 获取所有 annotations,但不能从 annotation 获取 classes。我在谷歌上搜索了很多关于这个主题的内容。

最佳答案

你想在这里使用某种依赖注入(inject),它将按需初始化。 Spring Framework、Google Guice 或 Pico Container 值得一看。

在大多数情况下,拥有静态 block 是个坏主意,因为您无法完全控制它们,而且它会使单元测试变得非常复杂 - 测试顺序确实很重要。

关于java - 我应该如何调用类静态初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148460/

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