Тип данных записи Java не работает для сетевого взаимодействия

Я думал, что новый тип данных Java Record в Java 14 должен подходить для передачи данных по сети, потому что данные не должны изменяться в процессе, который является основной особенностью типа данных записи - неизменяемым.

Я использую тип данных в RSocket. На стороне отправителя я получаю сообщение об ошибке кодировщика. Я не нашел, что такое кодировщик. На стороне приемника я получаю ошибку десериализатора. Насколько мне известно, запись не может реализовать такой интерфейс, как Serializable.

Итак, тип данных записи не подходит для сетевого программирования, верно?

Обновить:

Я добавляю интерфейс Serializable к определению записи как на стороне отправителя, так и на стороне получателя. После отправки запроса это нормально на стороне отправителя TCP, но ошибка на стороне получателя

No encoder for com.....data.Notification, current value type is class com.....data.Notification

У тех, кто отметил этот вопрос, другой опыт?

1 ответ

Насколько мне известно, запись не может реализовать такой интерфейс, как Serializable.

Это может. Просто добавьimplements Serializableк его декларации. Он не может расширять какой-либо другой класс, потому что он уже расширяетRecord, если ты это имеешь в виду.

См. JEP-359.

Помимо вышеуказанных ограничений, записи ведут себя как обычные классы: они могут быть объявлены верхним уровнем или вложенными, они могут быть универсальными, они могут реализовывать интерфейсы и создаются с помощью ключевого слова new.

Другие вопросы по тегам