我收到了这段代码,我正在尝试比较一个Timestamp数组:
Timestamp oldestTStamp = timeStamp[0];
boolean found = false;
int temp = 0;
for (int j = 1; j<timeStamp.length; j++){
if(oldestTStamp == null && timeStamp[j] == null){}
else if(oldestTStamp.after(timeStamp[j])){
oldestTStamp = timeStamp[j];
//Retrieve the oldest timestamp index in array
found = true;
temp = j;
}
这是我分配时间戳的方式:
timeStamp[index] = new Timestamp(System.currentTimeMillis());
答案 0 :(得分:1)
您的if
条件以相当奇怪的方式编写,并且仅检查Timestamp
是否null
。
你可能想写一些像
if (oldestTStamp != null && timeStamp[j] != null && oldestTStamp.after(timeStamp[j])) {
...
这样,after()
方法只有在oldestTStamp
和timeStamp[j]
都为非空时才会被调用。
答案 1 :(得分:1)
您应该添加异常的完整堆栈跟踪,否则只是猜测。
可能问题出在这一行:
if(oldestTStamp == null && timeStamp[j] == null){}
应该是
if(oldestTStamp == null || timeStamp[j] == null){}
答案 2 :(得分:0)
检查,
if( oldestTStamp != null &&
timeStamp[j] != null &&
oldestTStamp.after(timeStamp[j])){
}