Могут ли буферы протокола Java когда-либо возвращать null в списке геттера повторяющегося поля?


Предположим, у вас есть повторяющееся поле.

message Foo {
  optional int32 val = 1;
}

message Bar {
  repeated Foo foo = 1;
}

Это создаст метод

List<Foo> getFooList()

Есть ли какое-либо обстоятельство, при котором getFooList вернет null? Или он уже вернет список, даже если он пуст?

1 7

1 ответ:

Нет, нет случая, когда он возвращает null. Фактически, ни один из методов доступа к полю в Java protobuf генерируемых классах никогда не возвращает null; они всегда возвращают значение по умолчанию, если поле отсутствует. Аналогично, сеттеры не позволяют вам устанавливать null.