Java通用列表模板

Java通用列表模板,java,list,templates,generics,Java,List,Templates,Generics,我创建了一个ListPrinter(主类)和一个ListHolder类 我被教如何创建一个通用的ArrayHolder,但现在我正在尝试将它(我的家庭作业)修改为列表持有者 我老师的阵列打印机代码是: public class ArrayHolder <P> { P arr[]; public void print(P arr2[],int count) { arr = arr2; for (int i = 0; i &l

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

我被教如何创建一个通用的ArrayHolder,但现在我正在尝试将它(我的家庭作业)修改为列表持有者

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

 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.
公共类数组文件夹

{ P-arr[]; 公共作废打印(P arr2[],整数计数) { arr=arr2; for(int i=0;i

我将其用作我的列表持有者的模板,但在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
公共类列表持有者
{ 
x名单;
公共作废打印(x列表2,整数计数)
{      
列表=列表2;
for(int i=0;i
我做错了什么

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

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

第二个错误在下面的行中: 公共作废打印(列表列表2,整数计数)
列表带下划线,错误相同=在
列表上找不到符号

您需要使用
get(index)
方法按其索引检索元素

另外,
x
是列表所包含内容的类型,而不是列表本身的类型。因此声明应该是
list-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
公共类列表持有者
{ 
名单;
公共作废打印(列表列表2,整数计数)
{      
列表=列表2;
for(int i=0;i
您得到了什么错误?它似乎是正确的(我想您不添加
list2(I)
而是
list.get(I)
),您在调用该方法时是否检查count的值?
list
不一定是
集合类型。@Rohit当然,但在所有情况下都是这样的他需要一个获取值的getter…我的编译器不喜欢list(i)^我的代码编译(我也复制粘贴了它),您可能缺少到java.util.list.ListHolder dogs=new ListHolder();dogs.print(列表,5);ListHolder items=new ListHolder();items.print(列表,5)的导入;ListHolder people=new ListHolder();people.print(list,5);}//end main}//end classe您应该把它放在问题中,而不是放在注释中。您的代码显示,因为我认为x是列表(Dog)中的类型,所以您需要将“x”替换为“list”在你的ListHolder类中。我如何输入问题而不是评论?单击你问题下方的“编辑”链接。如果我的答案代码对你有效,请随时通知我。或者,你可以将该类声明为
ListHolder