我如何在 Java 中创建一个类似常量的 class 实例?
How do i make a constant-like instance of class in Java?
我正在尝试编写一个简单的游戏,在那个游戏中,有一个名为 Fighter
的 class,并且 class 的实例可以攻击其他实例。
我想创建一个 class 的实例,它始终被定义并具有特殊属性(我知道该怎么做,请不要尝试回答这个问题),以便它可以用作某种强力球员。
您可能想要的是:
public class Fighter {
public static final Fighter ADMIN_FIGHTER = new Fighter(whatever-args ...);
你可以像这样使用单例模式
public final class AdminFighter {
private static final AdminFighter instance = new AdminFighter();
private AdminFighter(){}
public static AdminFighter instance() {
return instance;
}
}
因此无论您在项目中的哪个位置都可以像这样使用
AdminFighter constant = AdminFighter.instance();
这总是 return AdminFighter 的同一个实例,就像常量一样。
注意: 避免像这个例子这样的全局常量,它们会在未来变成令人头疼的问题,并且它们是设计不佳的标志。 There are tons of blog post discussing about this.
我正在尝试编写一个简单的游戏,在那个游戏中,有一个名为 Fighter
的 class,并且 class 的实例可以攻击其他实例。
我想创建一个 class 的实例,它始终被定义并具有特殊属性(我知道该怎么做,请不要尝试回答这个问题),以便它可以用作某种强力球员。
您可能想要的是:
public class Fighter {
public static final Fighter ADMIN_FIGHTER = new Fighter(whatever-args ...);
你可以像这样使用单例模式
public final class AdminFighter {
private static final AdminFighter instance = new AdminFighter();
private AdminFighter(){}
public static AdminFighter instance() {
return instance;
}
}
因此无论您在项目中的哪个位置都可以像这样使用
AdminFighter constant = AdminFighter.instance();
这总是 return AdminFighter 的同一个实例,就像常量一样。
注意: 避免像这个例子这样的全局常量,它们会在未来变成令人头疼的问题,并且它们是设计不佳的标志。 There are tons of blog post discussing about this.