我有一个长变量说,
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 的替代品。 ”