gpt4 book ai didi

java - 抽象异常类中的串行版本 uid

转载 作者:行者123 更新时间:2023-12-02 08:38:55 25 4
gpt4 key购买 nike

我有一个基本的自定义异常类BaseException

public class BaseException extends RuntimeException {

}

以及几个扩展BaseException的自定义异常

public class CustomException extends BaseException {
private static final long serialVersionUID = 3655655808021733968L;
}

我收到有关未在 BaseException 类中声明串行版本 uid 的警告。抽象类中需要它吗?这是一个好的做法吗?有什么办法可以消除警告吗?

最佳答案

是的,您需要在抽象类中定义serialVersionUID。序列化对实例状态进行序列化,这通常意味着非静态字段;任何继承的状态都需要与对象的其余状态一起序列化。

BaseException 中没有字段这一事实并不意味着您应该跳过serialVersionUID。

请注意,与普遍的看法相反,serialVersionUID 不需要基于类名称或结构的哈希值。当类未显式定义 serialVersionUID 字段时,只有默认计算串行版本 UID 会执行此操作。通常,您可以将其声明为一个简单的数字:

private static final long serialVersionUID = 1;

关于java - 抽象异常类中的串行版本 uid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61508485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com