以下代码的PMD 报告NullAssignment
,修复它的最佳实践是什么?
将 Object 分配给 null 是一种代码异味。考虑重构。
下面的代码不是我写的,我还有一个问题,为什么要创建一个临时的定时器实例,然后把这个实例赋值给定时器呢?startTimer
并将stopTimer
在多线程上下文中使用。
private Timer timer;
private void startTimer() {
if (timer == null) {
Timer aTimer = timerService.createTimer(DEFAULT_TIMER_VALUE, null);
aTimer.setListener(this);
timer = aTimer;
}
}
private void stopTimer() {
if (timer != null) {
Timer aTimer = timer;
timer = null;
aTimer.cancel();
aTimer.setListener(null);
}
}
public void start() {
synchronized(..) {
startTimer();
}
}
public void stop() {
synchronized(..) {
stopTimer();
}
}