java – 它是什么意思:serializable类没有声明一个静态的最终serialVersionUID字段?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 它是什么意思:serializable类没有声明一个静态的最终serialVersionUID字段?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2314字,纯文字阅读大概需要4分钟。
内容图文
![java – 它是什么意思:serializable类没有声明一个静态的最终serialVersionUID字段?](/upload/InfoBanner/zyjiaocheng/715/6cba80940d9d4887806efbdac0eb749a.jpg)
参见英文答案 > What is a serialVersionUID and why should I use it? 24个
我在标题中给出了警告信息.我想了解并删除它.我在这个问题上找到了一些答案,但由于技术术语过载,我不理解这些答案.用简单的词语解释这个问题有可能吗?
附:我知道OOP是什么.我知道什么是对象,类,方法,字段和实例化.
P.P.S.如果有人需要我的代码,它在这里:
import java.awt.*;
import javax.swing.*;
public class HelloWorldSwing extends JFrame {
JTextArea m_resultArea = new JTextArea(6, 30);
//====================================================== constructor
public HelloWorldSwing() {
//... Set initial text, scrolling, and border.
m_resultArea.setText("Enter more text to see scrollbars");
JScrollPane scrollingArea = new JScrollPane(m_resultArea);
scrollingArea.setBorder(BorderFactory.createEmptyBorder(10,5,10,5));
// Get the content pane, set layout, add to center
Container content = this.getContentPane();
content.setLayout(new BorderLayout());
content.add(scrollingArea, BorderLayout.CENTER);
this.pack();
}
public static void createAndViewJFrame() {
JFrame win = new HelloWorldSwing();
win.setTitle("TextAreaDemo");
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
win.setVisible(true);
}
//============================================================= main
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndViewJFrame();
}
});
}
}
解决方法:
从javadoc:
The serialization runtime associates with each serializable class a version number, called a
serialVersionUID
, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization. If the receiver has loaded a class for the object that has a differentserialVersionUID
than that of the corresponding sender’s class, then deserialization will result in anInvalidClassException
. A serializable class can declare its ownserialVersionUID
explicitly by declaring a field named"serialVersionUID"
that must be static, final, and of type long:
您可以将IDE配置为:
>忽略这一点,而不是发出警告.
>自动生成一个id
根据您的附加问题“可能是所讨论的警告消息是我的GUI应用程序冻结的原因吗?”:
不,它不可能.只有在序列化对象并在类更改的其他位置(或时间)反序列化它们时,它才会导致问题,并且它不会导致冻结,而是在InvalidClassException中.
内容总结
以上是互联网集市为您收集整理的java – 它是什么意思:serializable类没有声明一个静态的最终serialVersionUID字段?全部内容,希望文章能够帮你解决java – 它是什么意思:serializable类没有声明一个静态的最终serialVersionUID字段?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。