gpt4 book ai didi

java - 在静态初始化程序中引用 Self

转载 作者:行者123 更新时间:2023-12-01 22:48:55 26 4
gpt4 key购买 nike

我在 java 程序中遇到了三个类的问题,我在静态初始值设定项中使用相同类类型的 public static final 引用,但这些类也具有 public static Final 本身的引用,并最终指向未初始化的类(导致 null)。我正在使用一种使用静态引用作为常量的策略,但是这种奇怪的链接行为不断发生,如果无法解决此问题,还有哪些替代方案,以及问题是否可以解决?

代码:

public class Foo{
public static final Foo UNKNOWN_FOO = new Foo(Bar.UNKNOWN_BAR);
private final Bar bar;
public Foo(Bar bar){
this.bar = bar;
}
}

public class Bar{
public static final Bar UNKNOWN_BAR = new Bar(Baz.UNKNOWN_BAZ);
private final Baz baz;
public Bar(Baz baz){
this.baz = baz;
}
}

public class Baz{
public static final Baz UNKNOWN_BAZ = new Baz(Foo.UNKNOWN_FOO);
private final Foo foo;
public Baz(Foo foo){
this.foo = foo;
}
}

最佳答案

正如 Eran 提到的,尽量避免循环依赖。以下来自 google guice 最佳实践的网页描述了如何避免循环依赖并解决它们: https://github.com/google/guice/wiki/CyclicDependencies

关于java - 在静态初始化程序中引用 Self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24977174/

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