You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现Serializable的类使用非序列化对象作为方法参数是否可正常序列化?

问题解答

完全可以写成接收Player参数的addPlayer方法,不会因为Player不可序列化而有问题,原因如下:

  • Serializable接口的约束只针对类的成员变量,方法本身以及方法调用时的临时参数、局部变量,都不会参与对象的序列化过程。
  • 你的代码里只是用Player对象临时获取UUID,最终存入citizens列表的是可序列化的UUID对象,Player参数在方法执行完就会被回收,不会成为Town对象的一部分,自然不会影响Town的序列化。

只有当你把Player对象声明为Town类的成员变量(比如public Player currentMayor;)时,才会因为Player不可序列化导致Town对象无法正常序列化——因为此时序列化Town会尝试序列化它的所有成员变量。


内容的提问来源于stack exchange,提问作者Bionicle Kolacz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:59:52