@SuppressWarnings («серийный номер»)

У меня вопрос, потому что я немного запутался (или, может быть, я не замечаю чего-то очевидного). Допустим, у меня есть исходный код, содержащий множество классов, которые содержат большое количество статических полей, определенных как это:

public final class ConverterTYPE  {
    private final static HashMap<String, Byte> STRING_MAP = new HashMap<String, Byte>() {
        {
            put("A", new Byte((byte)12));
            put("B", new Byte((byte)13));
        }
    };

}

Как мы все знаем, статические поля не будут сериализованы.

Однако , Java (и Eclipse) жалуется, что «сериализуемый класс не объявляет статическое конечное поле serialVersionUID типа long». Почему они не могут заметить, что статика не будет сериализована?

И следующий вопрос: было бы правильным решением этой проблемы использовать @SuppressWarnings ("serial") , чтобы избавиться всех таких предупреждений?

РЕДАКТИРОВАТЬ:

Ни один из моих классов не реализует интерфейс Serializable (или ни один из их суперклассов). И Eclipse указывает на HashMap со своими предупреждениями. Почему он не обнаруживает, что это статическое поле?

18
задан Lukasz 18 November 2015 в 01:43
поделиться