jdk1.6和jdk1.3的矛盾问题,纠结中
程序是在jdk1.6环境中编写的,因为jdk1.3中没有split()方法,没有Vector<Double>这种泛型的定义,而EAI方法使用的JDK限制在1.4版本以下,所以想要把jdk换成1.3的,但是对于1.3中相当于split()方法的函数以及泛型的一些东西不是很了解,现把一部分程序贴至如下:
Vector<Double> XAxis1=new Vector<Double>();
Vector<Double> YAxis1=new Vector<Double>();
Vector<Double> ZAxis1=new Vector<Double>();
Vector<Double> XAxis=new Vector<Double>();
Vector<Double> YAxis=new Vector<Double>();
Vector<Double> ZAxis=new Vector<Double>();
//变量定义
try{
BufferedReader reader=new BufferedReader(new FileReader(path));
String content=null;
while((content=reader.readLine())!=null){
textarea1.append(content+"\n");
String[] st =content.split(",");
XAxis1.addElement(Double.valueOf(st[0]).doubleValue());
YAxis1.addElement(Double.valueOf(st[1]).doubleValue());
ZAxis1.addElement(Double.valueOf(st[2]).doubleValue());
}
reader.close();
}catch(
IOException ie){
textarea1.append("read from file:"+ie.getMessage());
}
catch(
SecurityException se){
textarea1.append("Security constraint,Can't read from the file!\n");
}
}
。。。。。。。。。
for(int i=0;i<=w-1;i++){
XAxis.addElement((XAxis1.elementAt(i)+XAxis1.elementAt(i+w))/2);
YAxis.addElement((YAxis1.elementAt(i)+YAxis1.elementAt(i+w))/2);
ZAxis.addElement(((ZAxis1.elementAt(i)+ZAxis1.elementAt(i+w))/2-(ZAxis1.elementAt(0)+ZAxis1.elementAt(0+w))/2)*1000);
}
JDK1.3中Vector变量不能向上面一样定义,而且(XAxis1.elementAt(i)+XAxis1.elementAt(i+w))/2不能这样写,说是object对象类型不能直接关系运算,要转类型,这个不会,麻烦哪位高人帮忙把上面程序用在1.3环境下改下!
------解决方案--------------------
JDK 1.3 中除了没有泛型、正则表达式之外,还没有 JDK 5 中的自动装箱和拆箱功能
XAxis1.addElement(Double.valueOf(st[0]).doubleValue());
Java code
XAxis1.addElement(Double.valueOf(st[0]));
XAxis.addElement((XAxis1.elementAt(i)+XAxis1.elementAt(i+w))/2);
Java code
XAxis.addElement(toWrapDouble(getDouble(XAxis1, 1) + getDouble(XAxis1, i+w) / 2));
private static double getDouble(Vector vector, int index) {
return toDouble(vector.elementAt(index));
}
private static Double toWrapDouble(double num) {
return Double.valueOf(num);
}
private static double toDouble(Object obj) {
if(obj == null) {
throw new NullPointerException("obj is null!");
}
if(!(obj instanceof Double)) {
throws new ClassCastException("obj must be Double!");
}
return ((Double)obj).doubleValue();
}