我想保存一些价值的标志'变成一个变量。
例如。有2个整数标志xdirection = 0,ydirection = 1
现在这些值可以在程序执行期间发生变化。
我尝试过ArrayList和HashMap,但它们只在将值添加到地图时存储值。
基本上我想要的是一个地图列表,给我两件事,1 - 变量的名称(我可以把它放在地图上硬编码)和2 - 这个变量/标志的整数值当前在程序
答案 0 :(得分:2)
关于全局状态机反模式的问题 这个答案应该考虑到这一点。这是
Singletons
不有限的外部资源(如套接字或文件引用)对于许多记录良好的原因都很糟糕,这些原因很容易在 一般的互联网所以我不会在这里触及。你应该认真避免使用这些类型的天真状态机。
public final class Direction
{
public final AtomicInteger xDirection;
public final AtomicInteger yDirection;
public final Direction(final int x, final int y)
{
this.xDirection = new AtomicInteger(x);
this.yDirection = new AtomicInteger(y);
}
}
也就是说,int
可能是错误的类型,术语flag
意味着您应该使用Boolean
,因为您的问题信息有限。
public final class Direction
{
public final AtomicBoolean isXdirection;
public final Atomicboolean isYdirection;
public final Direction(final boolean x, final boolean y)
{
this.xDirection = new AtomicBoolean(x);
this.yDirection = new AtomicBoolean(y);
}
}
这也有线程安全的好处,以及final
引用是不可变的,AtomicInteger/Boolean
也是如此。
抵制创建伪全局引用的愿望,应该打开 一个传递给所有对象的对象的单个实例 需要读取当前状态的地方。