| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1074 人关注过本帖
标题:一个错误!但程序能运行
只看楼主 加入收藏
mmm11
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2007-5-10
收藏
 问题点数:0 回复次数:13 
一个错误!但程序能运行

Severity and Description Path Resource Location Creation Time Id
The serializable class xiao does not declare a static final serialVersionUID field of type long 练习/src xiao.java line 3 1190777096203 25


图片附件: 游客没有浏览图片的权限,请 登录注册

红色的报错又是什么意思呢?

[此贴子已经被作者于2007-9-26 11:42:52编辑过]

搜索更多相关主题的帖子: 运行 
2007-09-26 11:40
mmm11
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2007-5-10
收藏
得分:0 
我的Eclipse 总有黄色的小三角提示,我不知道错哪里了!谢谢大家帮小弟看一下!

2007-09-26 11:41
天涯海角
Rank: 2
等 级:新手上路
威 望:3
帖 子:507
专家分:0
注 册:2005-10-21
收藏
得分:0 

1.ThisDemo 定义问题。

2.  
  serialVersionUID 用来表明类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的类恢复时会出错。
  
  在JDK中,可以利用JDK的bin目录下的serialver.exe工具产生这个serialVersionUID,对于Test.class,执行命令:serialver Test。

  为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义。这样,即使某个类在与之对应的对象已经序列化出去后做了修改,该对象依然可以被正确反序列化。否则,如果不显式定义该属性,这个属性值将由JVM根据类的相关信息计算,而修改后的类的计算结果与修改前的类的计算结果往往不同,从而造成对象的反序列化因为类版本不兼容而失败。

  不显式定义这个属性值的另一个坏处是,不利于程序在不同的JVM之间的移植。因为不同的编译器实现该属性值的计算策略可能不同,从而造成虽然类没有改变,但是因为JVM不同,出现因类版本不兼容而无法正确反序列化的现象出现。

  当我们的系统不太经常需要序列化类时,可以去掉这些警告,做如下设置:Window-->Preferences-->Java,将serializable class without serialVersionUID的设置由warning改为Ignore。然后Eclipse会重新编译程序,那些警告信息也就消失了。

  最后的建议是,如果我们开发大量需要序列化的类的时候,我们最好还是还原为原来的设置。


我的未来不是梦!
2007-09-26 12:06
mmm11
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2007-5-10
收藏
得分:0 

谢谢了哦!其实我还不太明白....


2007-09-26 12:20
mmm11
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2007-5-10
收藏
得分:0 
回复:(天涯海角)
姐姐我在问一个问题!!

我要从键盘输入一个数(可以是任何类型的)
在伏给个一个变量 具体怎么操作,谢谢

[此贴子已经被作者于2007-9-26 12:38:44编辑过]


2007-09-26 12:32
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
int型:int a=Integer.parseInt(str);
float型:float a=Float.parseFloat(str);
double型:double a=Double.parseDouble(str);


I'm here, as always...
2007-09-26 13:13
mmm11
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2007-5-10
收藏
得分:0 
回复:(hwoarangzk)BufferedReader br = new Buffer...

谢谢版主,在请你看看这个方法,不知道错在哪里了?

public class shurushuchu {
public static void main(String[] args){
char ch;
ch=System.in.read();
System.out.print(ch);
}

}


2007-09-26 13:47
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 

import java.io.*;

public class shurushuchu {
public static void main(String[] args) throws IOException{
char ch;
ch=(char)System.in.read();
System.out.print(ch);
}
}
红色的地方需要加上


I'm here, as always...
2007-09-26 13:56
cwjieNO1
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-8-20
收藏
得分:0 

你这种写法不支持,
ch=System.in.read(); 这样不能从键盘接受一个字符然后再把它读出来`,

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
int型:int a=Integer.parseInt(str);
float型:float a=Float.parseFloat(str);
double型:double a=Double.parseDouble(str);
要这样的~~

2007-09-26 13:58
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 

System.in.read()会返回一个int型的数,所以少了(char)的话就不能将int转换为char,同时read()也会抛出IOException,所以要声明这个异常,并且要import java.io.*;


I'm here, as always...
2007-09-26 14:00
快速回复:一个错误!但程序能运行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018376 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved