JAVA serializable 类 未声明类型为 long 的静态终态

新手,就是完全照书上码了一段,但怎么会有这些提示?
![图片说明

https://img1.mukewang.com/5cd1612100014f2f05050143.jpg

还有一张传不上去

这都是些什么问题?麻烦大致讲下 谢谢

代码如下

 import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Test extends JFrame implements ActionListener{
    JLabel lbl1,lbl2;
    JTextField txt1,txt2,txtResult;
    JButton btnCalc;

    public Test(){
        super("我的第一个Swing程序");
        txt1=new JTextField(5);
        lbl1=new JLabel("=");
        txtResult=new JTextField(7);
        txtResult.setEditable(false);
        btnCalc=new JButton("计算");
        btnCalc.addActionListener(this);

        Container c=getContentPane();
        c.setLayout(new FlowLayout());
        c.add(txt1);
        c.add(lbl1);
        c.add(txt2);
        c.add(lbl2);
        c.add(txtResult);
        c.add(btnCalc);

        setSize(500,100);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public void actionPerformed(ActionEvent e){
        float num1=0,num2=0,result=0;
        try{
            num1=Float.parseFloat(txt1.getText());
            num2=Float.parseFloat(txt2.getText());
            result=num1+num2;
        }catch(Exception ex){
            txtResult.setText("数据非法!");
            return;
        }
        txtResult.setText(Float.valueOf(result).toString());
    }

    public static void main(String[] args){
        new Test();
    }

}


四季花海
浏览 1852回答 3
3回答

凤凰求蛊

虽然你没有直接实现Serializable,接口,但你继承的javax.swing.JFrame这个类实现了Serializable接口。    个人建议学习类的时候,留意下类实现哪些了接口(接口你已经学习过的)。用面向对象的思想去看类实现了哪些接口,可以理解为对象应该具备哪些功能(所以实现对应的接口)。    前几天在家没网,回复的有点慢。

蛊毒传说

你写的这个类实现 java.io.Serializable 接口,实现该接口表示以启用其序列化功能。提示 private static final long serialVersionUID,添加一个final修饰的序列化版本号(变量的值不可以改变)。如果你没有添加serialVersionUID,并且修改了成员变量,就可能抛出一个InvalidClassException异常。其实,这个提示并不是错误,只是一个警告,表示你写的代码可能会出现问题。

慕村225694

这个东西是在你的类进行序列化传输的时候,进行序列化和反序列化的需要使用的。这个值就相当类的id值。但是IDE考虑到如果缺少这个值,反序列化话的时候会出现意想不到的结果,所以建议你显式声明这个值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java