2

我创建了一个 ListPrinter(主类)和一个 ListHolder 类。

我被教导如何创建一个通用的 ArrayHolder,但现在我正在尝试将它(我的作业)修改为一个 LIST Holder。

我老师的阵列打印机代码是:

 public class ArrayHolder <P>
 {
    P arr[];
    public void print(P arr2[],int count)
    {
        arr = arr2;

        for (int i = 0; i < count; i++) 
        {
            System.out.print("\n"+arr[i]+"\n");
       }// end for
    }// end print method
}// end class.

我将此用作我的 ListHolder 的模板,但我在sout行中不断收到错误:

public class ListHolder <x>
{ 
    x list ;     
    public  void print (x list2, int count) 
    {      
        list= list2;
        for (int i = 0; i < count;  i++) 
        {
            System.out.print(list2(i)+"\n");
        }
    } // end print
} //end class

我究竟做错了什么???

========== 凯凯

它仍然给我错误:(我复制并粘贴了你的答案。第一个错误在行:列表列表;第一个列表带下划线,错误是:找不到符号

第二个错误在下面的行中: public void print (List list2, int count) LIST 带下划线,错误相同 = 找不到符号

4

1 回答 1

1

在 a 上List,您需要使用该get(index)方法通过其索引检索元素。

也是x列表包含的类型,而不是列表本身的类型。所以声明应该是List<x> list.

这是您的代码进行了这些修改:

public class ListHolder <x>
{ 
    List<x> list ;     
    public  void print (List<x> list2, int count) 
    {      
        list= list2;
        for (int i = 0; i < count;  i++) 
        {
            System.out.print(list2.get(i)+"\n");
        }
    } // end print
} //end class
于 2013-07-17T12:54:19.087 回答