Как правильно использовать Logger в классе Serializable Java?

У меня есть следующее (подделаны) класс в системе, над которой я работаю и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<Foo> 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(...);
    }
}

Это не кажется особенно эффективным, хотя.

Мысли?

Ответы на вопрос(4)

Ваш ответ на вопрос