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

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

图片说明](https://img-ask.csdn.net/upload/201502/18/1424249621_652792.png)

还有一张传不上去

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

代码如下

 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();
    }

}

3个回答

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

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

Ete__ghost
Ete_ghost 实现这个接口?我不是implements ActionListener 的吗?这个Serializable接口是哪里来的啊
5 年多之前 回复

这个东西是在你的类进行序列化传输的时候,进行序列化和反序列化的需要使用的。这个值就相当类的id值。
但是IDE考虑到如果缺少这个值,反序列化话的时候会出现意想不到的结果,所以建议你显式声明这个值。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐