写了一个这样的方法,大致如下
public T get(int pos){  //pos 是链表的某个位置,之前定义 private Node<T> first;
Node<T> current = first; //将Node指向第一个if(pos < 1 || pos > number)   //number 是链表里面项目的个数,之前有定义
{
return null;  //超过边界就返回null
}else{for(int i = 1; i < pos ; i++){
current = current.getNext();
}
return (T) current;
}写一个 T get的方法,读出链表在指定位置的内容,由pos决定。在测试文件里用system.out.println(list.get(i))来读取链表每个位置的内容,可以使数字或者英文字母.但这样做出的结果是Node的地址,而不是内容,结果是“Node@"后再加一些随机数字或字母。不能在前面加(String)的方式转换,这样会报错。提示Node不能变成String请问怎么修改,谢谢

解决方案 »

  1.   

    Node这个是给定,只写ADT链表的各种方法,有些书上有类似的程序,但返回的类型不是T,似乎没法用如果转化,怎么把对象转化成值呢谢谢
      

  2.   

    你返回的是你对象的地址,你改写它的toString方法呗~~ 返回一个值
      

  3.   

    Node继承了String吗?如果没有,怎么可能转换。还有,那个不叫随机字母或数字,而是类名+对象的十六进制的hashCode
     public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
    所有类都是Object的子类,所以默认都继承了Object的toString方法,如果没有重写则运行上面的这段代码,可以重写Object的toString方法
      

  4.   

    试了下楼上的方法,结果从"Node@" 变成了 "ADTList@“貌似还是不行
      

  5.   

    你自己定义一个值呀,你实际上并没有给你的Node赋值