【发布时间】:2012-05-17 06:47:07
【问题描述】:
我有一个 Long 变量说,
private Long m_prevPacketRecvdTime = null;
现在我有一个 setter/getter 对,
public void setM_prevPacketRecvdTime() {
if (this.m_prevPacketRecvdTime == null) {
this.m_prevPacketRecvdTime = new Long(System.currentTimeMillis());
} else {
// Why to create a new Object every time
//Why I can't just set the new value
//Why use new operator here instead of an Assignment or set method call
}
}
我想改进它,而不是传统的 setter 方法,1. 传递 long 而不是 Long,2. 只创建一个新的 Long 一次,其余时间只需将新值设置为现有的 Long 对象。但令我难以置信的是Long 中没有这样的方法。
我们真的需要在每次想要更改它的值时创建一个新的 Long 对象吗?我们如何为现有的 Long 对象设置一个新的 long 值(与 longvalue() 正好相反)?
更多信息 在搜索答案时,我还遇到了AtomicLong,它具有类似的功能,但我不确定这是否对我有用。因为他们清楚地说 AtomicLong “不能用作 Long 的替代品。”
【问题讨论】:
标签: java wrapper long-integer