当前位置: 代码迷 >> Java相关 >> [求助]这个一运行就提示异常.
  详细解决方案

[求助]这个一运行就提示异常.

热度:304   发布时间:2006-06-30 02:05:19.0
[求助]这个一运行就提示异常.

这道题是:在命令行输入一些字符串的值,并存到Vector里。并倒序显示Vector中的内容,然后降序排序并显示该内容.

import java.util.*;
class myStringBuffer{
StringBuffer objVector;
void reverse(){
objVector.reverse();
}
}
class Vector extends myStringBuffer{
Vector objVector;

Vector(){
objVector=new Vector();
}
void addElement(String t0,String t1,String t2,String t3,String t4) {
System.out.println(objVector.toString());
objVector.reverse();
System.out.println(objVector.toString());
}
}
public class myVector {
public static void main(String args[]){
String t0=args[0];
String t1=args[1];
String t2=args[2];
String t3=args[3];
String t4=args[4];
Vector obj=new Vector();
obj.addElement(t0, t1, t2, t3, t4);
}
}

一运行就提示“java.lang.StackOverflowError
Exception in thread "main"”

特此请教各位帮小弟修改一下此程序,或指点一下。小弟在此感激不尽!

搜索更多相关的解决方案: Vector  String  reverse  void  java  

----------------解决方案--------------------------------------------------------

有问题哦 你在cmd下 输入 就不会 有异常了 但是你的程序有问题 怎么呢用字符串的发法直接把vector转换过来呢

[此贴子已经被作者于2006-6-30 9:02:32编辑过]


----------------解决方案--------------------------------------------------------
你之所以会出异常是因为你忽视了一个很重要的问题
那就是你这个程序会递归调用,一直到栈的空间用尽为止
最好你的程序就出现了栈溢出异常
你最好不要定义Vector对象,因为系统本身就有一个Vector对象
还有,你在超 类中定义了一个StringBuffer objVector;
而在子类中也定义了一个Vector objVector;
都是同一个名字 ,当你调用objVector.reverse()的时候
根据多态性,实际执行的是子类的objVector的对象在调用这个方法,这个方法是在父类中定义的,所以父类里面的参数objVector 这个时候指向的是子类中的的Vector对象,就这个产生了递归调用
还有,你在子类中定义的addElement()根本就没有起到作用
它谁加到谁里面去了?

----------------解决方案--------------------------------------------------------

十分感谢!


----------------解决方案--------------------------------------------------------
  相关解决方案