我在我正在开发的系统中有以下(doctored)类,而
Findbugs正在生成一个
SE_BAD_FIELD警告,我想知道为什么会这样说,在我以我想的方式解决它之前.我感到困惑的原因是因为这个描述似乎表明我在类中没有使用其他非串行化的实例字段,但是bar.model.Foo也不是可序列化的,并且以完全相同的方式使用(就我而言可以告诉),但是Findbugs不会生成警告.
import bar.model.Foo;
import java.io.File;
import java.io.Serializable;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Demo implements Serializable {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final File file;
private final List originalFoos;
private Integer count;
private int primitive = 0;
public Demo() {
for (Foo foo : originalFoos) {
this.logger.debug(...);
}
}
...
}
我最初的脸红在解决方案是从工厂得到一个记录器参考我正在使用它:
public DispositionFile() {
Logger logger = LoggerFactory.getLogger(this.getClass());
for (Foo foo : originalFoos) {
this.logger.debug(...);
}
}
这似乎并不特别有效.
思考?