在我的代码中,我有以下枚举
public ennum BuySell {
buy('B', true, RoundingMode.DOWN, 1),
sell('S', false, RoundingMode.UP, -1 buy);
BuySell(char c, boolean isBuy, RoundingMode roundingMode, int mult) {
this.aChar = c;
this.isBuy = isBuy;
this.isSell = !isBuy;
this.roundingMode = roundingMode;
this.mult = mult;
}
BuySell(char c, boolean isBuy, RoundingMode roundingMode, int mult, BuySell oppositeAction) {
this(c, isBuy, roundingMode, mult);
this.opposite = oppositeAction;
oppositeAction.opposite = this;
}
}
Run Code Online (Sandbox Code Playgroud)
我通过DB40保存包含此枚举的对象,当我的系统加载时,它会加载这些对象.我看到的是加载的对象包含具有不同对象id的ButSell.
干得好 :

你可以看到一个卖= 9570而另一个是9576
我的问题是 - 如何创建此枚举的另一个实例?不是静止的吗?
我怎么能避免呢?
谢谢.
你可以获得多个实例
Unsafe用来创建Enum类的实例.需要进一步调查以确定如何避免这种情况.例如,您是否正在设置类加载器.两个对象的ClassLoader是不同的吗?该库是否使用Unsafe.allocateInstance?
顺便说一句:我会使用买入和卖出,而不是买入和卖出枚举常量.
| 归档时间: |
|
| 查看次数: |
542 次 |
| 最近记录: |