Java通用列表模板

时间:2013-07-17 12:46:37

标签: java list templates generics

我创建了一个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

我做错了什么???

========== KayKay

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

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

1 个答案:

答案 0 :(得分:1)

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