日期:2014-05-20  浏览次数:20668 次

java里的Vector问题,貌似是static的问题。。。
求指教。。我想用zb()这个函数 ,将Vector里的对象Object转化成int型的。该怎么做啊?
import java.applet.*;
 import java.awt.*;
import java.util.Vector;
public class test5 {
public int zb( Object ss){return Integer.parseInt((String)ss);}
 
public static void main(String[] args) {
Vector X1=new Vector();
 
for(int i=0;i<5;i++){
X1.addElement(i);
}

for(int i=1;i<5;i++){
int a=0;
System.out.println(zb(X1.elementAt(i)));//这里有问题
if(X1.elementAt(i).equals(2)){System.out.println("ca ");}
}

}

}

------解决方案--------------------
第一个zb是实例方法,不能在静态方法里面直接用,所以编译会报错,要先new一个对象,然后再调用这个对象的zb方法
第二个是jdk5之后有自动封装拆装的特性
直接
public static int zb( Object ss){return (Integer)ss;}
就可以,如果用泛型,你这个zb方法就根本没必要了
------解决方案--------------------
1.就是java虚拟机会自动的帮你把原生数据类型包装成对应的包装类。如:在1.4之前,你要弄一个4的对象,
new Integer(4).拆箱刚好倒过来啦。

2.为什么有new一个对象才能调用你的zb方法,是因为你的main方法是静态的,它不能直接调用非静态的成员的。需要对象才能调用。new test5()就可以了。