Topic: 求助一个java小程序 |
Print this page |
1.求助一个java小程序 | Copy to clipboard |
Posted by: gumuyang Posted on: 2007-01-26 12:29 调试一道书上的题目(电子工业出版社的<<Java2实用教程>> ),发现书上的程序例子操作起来有问题。 废不多说,直接入正题: class Example4_7{ public String name=" "; public void base_int(int p_One){ p_One = 100; } public void addElement(java.util.Vector p_Vt){ p_Vt.addElement("Hello Java World!"); } public static void main(String[] args){ Example4_7 e = new Example4_7(); int x = 12; e.base_int ( x ); System.out.println("形参: "+x); java.util.Vector ta = new java.util.Vector(); ta.addElement("Java 2"); e.addElement(ta); System.out.println("引用: "+ta); } } 书上说运行结果是: 形参:12 引用:[Java 2, Hello Java World!] 我就按照程序打了一遍,文件名为Example4_7.java 按javac Example4_7.java调试(为了方便我专门在d盘设了个java目录调试程序,调调试路径不会错),显示结果如下: 注意:Exaple4_7.java使用了未经检查或不安全的操作。 注意:要了解详细信息,请使用 -Xlint:unchecked重新编译。 于是我输入javac Example4_7.java -Xlint:unchecked 显示结果如下: Example4_7.java:7: 警告:[unchecked] 对作为普通类型 java.util.Vector 的成员的 addElement(E) 的调用未经检查 p_Vt.addElement("Hello Java World!"); ^ Example4_7.java:15: 警告:[unchecked] 对作为普通类型 java.util.Vector 的成员的 addElement(E) 的调用未经检查 ta.addElement("Java 2"); ^ 2 警告 如何解决?高人我谢谢您了! |
2.Re:求助一个java小程序 [Re: gumuyang] | Copy to clipboard |
Posted by: wmkm0113 Posted on: 2007-01-26 13:49 应该是你代码里的小问题,发生这种情况的原因如下: java.util 中的类 Vector<E> 其构造方法Vector() 是构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。 而当你调用addElement(E obj) 方法时,执行的操作是将指定的组件(obj)添加到此向量的末尾,并将其大小增加 1。这时如果内部数据数组内容已经达到最大值,此时再执行这种操作就会报错。 解决方法: 根据你的需求,只需要将 java.util.Vector ta = new java.util.Vector(); 这行代码修改为: java.util.Vector<String> ta = new java.util.Vector<String>();就可以了。 上面的定义同样修改。 |
3.Re:求助一个java小程序 [Re: gumuyang] | Copy to clipboard |
Posted by: wmkm0113 Posted on: 2007-01-26 13:53 因为你是要向数据数组中添加字符串,所以使用<String>。别的参数还是自己去看Java的API文档吧。那里面比较详细 |
4.Re:求助一个java小程序 [Re: gumuyang] | Copy to clipboard |
Posted by: gumuyang Posted on: 2007-01-26 17:19 首先谢谢楼上的帮助!弱弱地说一句:你说的具体做法我还是没看懂。 另外,我运行了一下java Example4_7,结果显示如下: 形参:12 引用:[Java 2,Hello Java World!] 为什么javac的时候有问题,java运行的时候还是能显示正确答案呢? |
5.Re:求助一个java小程序 [Re: gumuyang] | Copy to clipboard |
Posted by: 九佰 Posted on: 2007-01-26 20:31 你用的是java se 5.0(jdk 1.5)编译会出现这种情况. 这是因为java se 5.0新增加了对泛型的支持,在使用vector的时候要求你指明存储内容的类型. 如果使用j2se 1.4.x 编译书上的例子就没有问题了. |
6.Re:求助一个java小程序 [Re: gumuyang] | Copy to clipboard |
Posted by: 嚼花仔 Posted on: 2007-01-26 21:23 为什么javac的时候有问题,java运行的时候还是能显示正确答案呢? 因为你的javac出现的都是warning而不是error,所以java可以运行通过 |
7.Re:求助一个java小程序 [Re: gumuyang] | Copy to clipboard |
Posted by: 嚼花仔 Posted on: 2007-01-26 21:24 弱弱的问一句,"java se 5.0新增加了对泛型的支持"什么是泛型啊 |
8.Re:求助一个java小程序 [Re: gumuyang] | Copy to clipboard |
Posted by: gumuyang Posted on: 2007-01-29 08:39 谢谢各位的热情解答,虽然我现在还没有全懂,但起码明白了:warning不是error,警告未必不能运行。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |