java中写Applet小程序的问题,使用Eclipse集成开发工具。程序没有错误,可以运行,但是在public class 后面的类名有下划线,显示一个警告,“The serializable class Myplayer does not declare a static final serialVersionUID field of type long”。
部分代码:
import java.awt.*;
import java.applet.*;
public class Myplayer extends Applet{
String file="不可一世.au";
AudioClip clip;
Button b1,b2,b3;
Choice choice=new Choice();
public void init(){
setSize(400,50);
choice.add(file); //设置可拉框,显示当前播放的歌名
add(choice);
b1=new Button("start"); //设置三个按钮,分别为start,loop,stop。
b2=new Button("loop");
b3=new Button("stop");
add(b1);
add(b2);
add(b3);
clip=this.getAudioClip(getDocumentBase(),file); //取得声音文件
}
这到底是什么意思,怎么可以解决。。。??
2011-11-03 15:12
提问者采纳
这个警告是提示你要实现序列化。Applet需要在网络上进行传输(对象会离开内存),所以需要实现序列化,以便用户在接收时通过反序列化就可以将你传输的对象重新在内存中还原。
追问:
请问怎样才能实现序列化???
追答:
Applet的父类 public abstract class Component implements ImageObserver, MenuContainer,
Serializable{
已经实现过序列化Serializable了,这里只是需要一个对象的标识,
public class Myplayer extends Applet{
private static final long serialVersionUID = 1L; //这个是缺省的
或者 private static final long serialVersionUID = -8534844170998963067L; //自动生成的。
这两句随便写一个都行
或者
@SuppressWarnings("serial")
public class AudioApplet extends Applet {
不要写个注解忽略这个警告
-
提问者评价
-
谢谢啦!!这个问题困惑了我好久了,搜过很多答案,讲了一大堆,晕了。。
Java Applet序列化警告
本文解答了一个关于Java Applet程序在使用Eclipse开发环境中遇到的序列化警告问题。该警告提示用户自定义的Applet类未声明一个静态final类型的serialVersionUID字段。文章提供了两种解决方案:一是直接添加serialVersionUID字段;二是使用注解来忽略此警告。
1万+





