【发布时间】:2020-06-30 00:49:04
【问题描述】:
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();
}
}
【问题讨论】:
标签: java refactoring pmd