-5

我认为 Java 14 中新的 Java Record 数据类型应该适合跨网络的数据,因为数据不应该在过程中发生变化,这是记录数据类型的主要特征 - 不可变。

我使用 RSocket 中的数据类型。在发送方,我收到编码器错误。我还没有找到编码器是关于什么的。在接收方,我得到一个解串器错误。据我所知,记录无法实现诸如 Serializable 之类的接口。

所以,记录数据类型不适用于网络编程,对吗?

更新:

我将 Serializable 接口添加到发送方和接收方的记录定义中。发出请求后,TCP发送端正常,接收端出错

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

标记这个问题的人有不同的经历吗?

4

1 回答 1

5

据我所知,记录无法实现诸如 Serializable 之类的接口。

它可以。只需添加implements Serializable到它的声明中。它不能扩展任何其他类,因为它已经 extends Record,如果这就是你的意思。

JEP-359

除了上述限制之外,记录的行为类似于普通类:它们可以声明为顶级或嵌套,它们可以是通用的,它们可以实现接口,并且它们通过 new 关键字进行实例化。

于 2020-06-14T16:51:42.407 回答