默认 Jhipster 应用程序 - 无用实现可序列化?
Default Jhipster app - useless implements Serializable?
Jhipster(版本 6.7.1)生成的默认 User
实体 class 扩展 AbstractAuditingEntity
并实现 Serializable
.
然而,Visual Studio 代码显示以下警告:
Redundant superinterface Serializable for the type User, already defined by AbstractAuditingEntity
确实,导航到AbstractAuditingEntity
class的定义,可以清楚地看到AbstractAuditingEntity
已经实现了Serializable
。
所以我的问题是:这个 implements Serializable
需要 在用户 class 中还是可以安全地 删除?
实际上,这在理论上很棘手。
眼下,那个implements
的说法实在是多余。当您打算使用 "built-in" Java 序列化机制时,Serializable
很重要。该机制将在运行时检查您的对象的具体类型,对该机制唯一重要的是某个对象是否实现了该接口(而不是 "inherited" 或 "just on that class" ).
理论上,没有 冗余声明可能会在 base class 更改时导致问题。意思是:如果 AbstractAuditingEntity
在某个时候被重做,它的 implements Serializable
部分被删除了怎么办?那么 User
自己这么说就很重要了。
但如前所述,那部分是相当理论化的:您的基础 class 不应该以这种方式改变。如果是这样,您可能正在查看过多的不兼容问题!
然而,如图所示,保留声明或删除声明这两个选项都可以看出是有意义的。
因此,我会从务实的角度来看待这个问题。
所以,回答你的问题,你应该问一个不同的问题:我是要经常重新生成那个 User
class,还是我只生成它一次,然后继续手动编辑?
情况一:文件一直在生成。然后简单地接受工具正在做的事情(如果你不能以某种方式改变它)并接受警告。
情况2:生成后,您成为该文件的所有者。那么我希望它是 "warning free",因此删除 implements
语句。
Jhipster(版本 6.7.1)生成的默认 User
实体 class 扩展 AbstractAuditingEntity
并实现 Serializable
.
然而,Visual Studio 代码显示以下警告:
Redundant superinterface Serializable for the type User, already defined by AbstractAuditingEntity
确实,导航到AbstractAuditingEntity
class的定义,可以清楚地看到AbstractAuditingEntity
已经实现了Serializable
。
所以我的问题是:这个 implements Serializable
需要 在用户 class 中还是可以安全地 删除?
实际上,这在理论上很棘手。
眼下,那个implements
的说法实在是多余。当您打算使用 "built-in" Java 序列化机制时,Serializable
很重要。该机制将在运行时检查您的对象的具体类型,对该机制唯一重要的是某个对象是否实现了该接口(而不是 "inherited" 或 "just on that class" ).
理论上,没有 冗余声明可能会在 base class 更改时导致问题。意思是:如果 AbstractAuditingEntity
在某个时候被重做,它的 implements Serializable
部分被删除了怎么办?那么 User
自己这么说就很重要了。
但如前所述,那部分是相当理论化的:您的基础 class 不应该以这种方式改变。如果是这样,您可能正在查看过多的不兼容问题!
然而,如图所示,保留声明或删除声明这两个选项都可以看出是有意义的。
因此,我会从务实的角度来看待这个问题。
所以,回答你的问题,你应该问一个不同的问题:我是要经常重新生成那个 User
class,还是我只生成它一次,然后继续手动编辑?
情况一:文件一直在生成。然后简单地接受工具正在做的事情(如果你不能以某种方式改变它)并接受警告。
情况2:生成后,您成为该文件的所有者。那么我希望它是 "warning free",因此删除 implements
语句。