当前位置: 首页 > 知识库问答 >
问题:

可序列化的类,应该是什么字段与Spring

勾岳
2023-03-14

如果我有一个可序列化的类,

public class Solar implements Serializable {
@Autowired
private CategoryDAO categoryDAO;

}

当我使用以下消息构建findBugs时,会显示此消息:

这个可序列化类定义了一个非原语实例字段,它既不是瞬态的、可序列化的,也不是java的。并且似乎没有实现可外部化的接口或readObject()和writeObject()方法。如果此字段中存储了不可序列化的对象,则此类的对象将无法正确反序列化。

田野应该是什么才不会看起来像虫子?

共有1个答案

东郭自珍
2023-03-14

这与Spring无关。看起来它只是关于可序列化但定义了不可序列化字段的类的(反)序列化。

<代码>可序列化是在类级别上定义的-就像您对Solar所做的那样(不在字段级别上)。

然而,如果我们在这里谈论一个真正的DAO,它应该被标记为瞬态——对我来说序列化一个DAO没有意义。

 类似资料:
  • 嗨,我在声纳皮棉中收到此错误: “Serializable”类中的字段应该是暂时的或可序列化的 私有最终条件notEmpty=锁定。newCondition() 我的代码是: 有人能提供解决方案,使sonar不会显示所有三个变量的这些错误吗?

  • 我遇到了下面的问题,请让我知道是否有人以前见过这个,真的让我疯狂地想如何前进。 我有两个实体- 当我在类B上运行SonarQube分析时,我看到S1948弹出,我只是不确定我还能在这里做什么,类A和B是可序列化的,并且确实拥有所有可序列化的成员字段。 请让我知道,如果这已经解决之前。 提前感谢!

  • 我的代码: 我只是不知道我还能在这里做些什么,这个类是可序列化的,并且所有的成员字段也是可序列化的。 请让我知道,如果这已经解决之前。

  • 定义不可变类的策略表明 所有字段都应该是最终字段。 对于ex: 为什么一定要最终决定? 因为我没有给出setter方法吗?它不能改变。谢谢。

  • 如果我有一个模型序列化程序,其中数据库模型中不需要first_name和last_name(blank=True,null=True,default=None),并且我选择提交可能包含或可能不包含“first_name”或“last_name”字段的json数据,那么无论这些字段是否通过json请求提交,这些字段不应该存在于已验证的_数据[]中,因为它们列在序列化程序字段中,并且其默认值设置为无?

  • 本文向大家介绍什么是序列化与反序列化?相关面试题,主要包含被问及什么是序列化与反序列化?时的应答技巧和注意事项,需要的朋友参考一下 序列化:将对象状态转换为可保持或传输的格式的过程。将对象实例的字段及类的名称转换成字节流,然后把字节流写入数据流 反序列化:将流转换为对象。 这两个过程结合起来,可以轻松地存储和传输数据。