有关the serializable class的一点感想

来源:互联网 发布:系统制作软件 编辑:程序博客网 时间:2024/05/19 01:07

先上个程序体现以下Myeclipse里面提示的警告:

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class WindowHTML extends JFrame implements ActionListener,Runnable{
    //private static final long serialVersionUID = 1L;
    JButton button;
       URL url;
       JTextField text;
       JTextArea area;
       byte b[]=new byte[118];
       Thread thread;
       WindowHTML(){
        text=new JTextField(20);
        area=new JTextArea(12,12);
        button=new JButton("确定");
        button.addActionListener(this);
        thread=new Thread(this);
        JPanel p=new JPanel();
        p.add(new JLabel("输入你要查询的网址"));
        p.add(text);
        p.add(button);
        add(new JScrollPane(area),BorderLayout.CENTER);
        add(p,BorderLayout.NORTH);
        setBounds(60,60,450,300);
        setVisible(true);
        validate();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       }
       public void actionPerformed(ActionEvent e){
        if(!(thread.isAlive()))
         thread=new Thread(this);
        try{
         thread.start();
        }catch(Exception ee){
         text.setText("正在读取,请稍后......"+url);
        }
       }
       public void run(){
        try{int n=-1;
        area.setText(null);
        url=new URL(text.getText().trim());
        InputStream is=url.openStream();
        while((n=is.read(b))!=-1){
         String s =new String(b,0,n);
         area.append(s);
        }
        } catch(Exception e1){
         text.setText(""+e1);
            return;
        } 
       }
}

注释掉的语句之后会出现一个问题:The serializable class does not declare a static final。当实现了一个序列化的接口或者可以序列化类的时候,要注意serialVersionUID(UID是用户界面设计)最好定义private static final long serialVersionUID = 1L; 这条语句,即便他是一个小小的兼容性警告。目的就是为了实现Downward Compatibility(向下兼容)。在计算机中指在一个程序或者类库更新到较新的版本后,用旧的版本程序创建的文档或系统仍能被正常操作或使用,或在旧版本的类库的基础上开发的程序仍能正常编译运行的情况。可见一个小小的警告背后的内容还是相当丰富的。


0 0
原创粉丝点击