java中出现的一些警告,求高手指导!!!!!!!
用eclipse时,使用接口后,那个公共类的名字老是出现警告。。。(大多数都是因为使用了某个接口)下面是一个例子:import java.awt.*;
import java.applet.*;
public class DrawImage extends Applet{//这里的DrawImage,就显示了黄色的警告
Image Background,Plane;
public void init(){
Background = getImage(getDocumentBase(), "Image/1.jpg");
Plane = getImage(getDocumentBase(),"Image/1.gif");
}
public void paint(Graphics g){
g.drawImage(Background, 0, 0, 320, 240, this);
g.drawImage(Plane, 110, 90, 100,60,this);
}
}
不过编译都可以通过,但是我想知道这个程序会不会有别的影响,求高手指导。顺便也想知道一些命名技巧。。
----------------解决方案--------------------------------------------------------
警告的信息是什么
----------------解决方案--------------------------------------------------------
Applet实现了Serializable接口,你DrawImage继承了该类,也是可以序列化的。
而对象的序列化为了保证反序列时的安全,java提供了一个private static final 的serialVersionUID值,
该值用于标示该类的序列化版本。
而可序列化的对象你定义类时没有添加一个serialVersionUID值,他就会有警告出现。
在涉及到对象的序列化和反序列化时,你一旦改动以上程序可能会引发ClassNotFoundException异常。
如果你没有涉及到对象的IO,以上程序没有问题。
而手动加入这个field值,是为了保证程序更加健壮。
----------------解决方案--------------------------------------------------------
回复 3楼 scampRa
表示还有些看不懂,初学者。。。可不可以直接说怎么做,或者贴上代码? ----------------解决方案--------------------------------------------------------
回复 2楼 love云彩
eclipse的警告就是在那一行显示一个黄色的感叹号! ----------------解决方案--------------------------------------------------------
eclipse的警告就是在那一行显示一个黄色的感叹号!
对于程序没影响
----------------解决方案--------------------------------------------------------
首先一般情况下这个警告不会影响程序运行,再者这个和你的命名是没有关系的,命名有问题就不是警告了,命名只要不是关键字就可以,具体的你可以看看网上人家怎么睡的,哪些老程序员的建议,一般都是该类的功能名的英文或者英文的缩写,不建议用缩写,全拼最好。如果你想知道那警告是什么,可以将警告信息贴出去百度或者什么,它其实主要是因为你继承的那个applet实现了序列化,就像三楼说的那样。一般情况下,这都是需要一个序列化号的,反序列话时用,现在说了估计你比较难理解,具体的可以看一下什么叫序列化,还有Serializable接口的作用。这个一般是那个类中的数据需要持久话时才会用到。说到这你还得知道什么叫做数据的持久化,以及它的意义,慢慢来,一步步看吧
----------------解决方案--------------------------------------------------------
回复 7楼 java小蚂蚁
感谢,受益匪浅 ----------------解决方案--------------------------------------------------------
知道答案了就结贴
----------------解决方案--------------------------------------------------------