Java 是否从另一个泛型类中创建的ArrayList打印单个项?

Java 是否从另一个泛型类中创建的ArrayList打印单个项?,java,generics,arraylist,Java,Generics,Arraylist,试图了解Java中的泛型。我使用非泛型方法创建了一个ArrayList,并通过强制转换将其打印出来,使用通常的array.get(index)一切都可以正常工作,但是当我使用泛型创建列表时,get方法不起作用。我可以很好地打印整个列表,但我想挑出单个元素。我尝试了一些不同的方法,可能会使代码有点混乱,对此我深表歉意。我知道事情可能会变得更简单,我只是想学习Java中的泛型,我遇到了这个问题。我看了几个不同的视频,找到了几个例子,所以我可能试图以错误的方式将两个概念放在一起。试过研究,却找不到答案

试图了解Java中的泛型。我使用非泛型方法创建了一个ArrayList,并通过强制转换将其打印出来,使用通常的array.get(index)一切都可以正常工作,但是当我使用泛型创建列表时,get方法不起作用。我可以很好地打印整个列表,但我想挑出单个元素。我尝试了一些不同的方法,可能会使代码有点混乱,对此我深表歉意。我知道事情可能会变得更简单,我只是想学习Java中的泛型,我遇到了这个问题。我看了几个不同的视频,找到了几个例子,所以我可能试图以错误的方式将两个概念放在一起。试过研究,却找不到答案

第一个类Generic.java是创建泛型ArrayList

import java.util.ArrayList;
import java.util.List;

public class Generic<T> {

private ArrayList<T> data;

    public Generic() {
        data = new ArrayList<T>();
    }

    public void add(T element){
        data.add(element);
    }

    //Not even sure if I need these get/set but I put them in there for testing
    public ArrayList<T> getData() {return data;}

    public void setData(ArrayList<T> data) {this.data = data;}

    public String toString(){
        return data.toString();
    }
}
import java.util.ArrayList;
导入java.util.List;
公共类泛型{
私有数组列表数据;
公共泛型(){
数据=新的ArrayList();
}
公共无效添加(T元素){
数据。添加(元素);
}
//甚至不确定我是否需要这些get/set,但我把它们放在那里进行测试
public ArrayList getData(){return data;}
public void setData(ArrayList data){this.data=data;}
公共字符串toString(){
返回data.toString();
}
}
第二类是主要的测试类:

import java.util.ArrayList;
import java.util.List;


public class Test {

    public static void main(String[] args) {

        List nonGenericList = new ArrayList();
        nonGenericList.add("Enzo");
        nonGenericList.add(458);
        String nonGen1 = (String) nonGenericList.get(0);
        Integer nonGen2 = (Integer) nonGenericList.get(1);

        System.out.println(nonGen1);
        System.out.println(nonGen2);


        Generic<Object> genericList = new Generic<>();
        genericList.add("Enzo");
        genericList.add(458);

        //This is where the .get(0) isn't working for me
        System.out.println(genericList.get(0));
    }
}
import java.util.ArrayList;
导入java.util.List;
公开课考试{
公共静态void main(字符串[]args){
List nonGenericList=new ArrayList();
非通用列表。添加(“Enzo”);
非通用列表。添加(458);
字符串nonGen1=(字符串)nonGenericList.get(0);
整数nonGen2=(整数)nongenericslist.get(1);
System.out.println(nonGen1);
System.out.println(nonGen2);
泛型泛型列表=新泛型();
一般清单。添加(“Enzo”);
增订(458);
//这就是.get(0)不适用于我的地方
System.out.println(genericslist.get(0));
}
}
谢谢你的帮助

您的
Generic
类没有方法
get(int index)
,如果要调用该方法,应创建该方法

尝试将其添加到您的
Generic
类中

public T get(int index){
    return data.get(index);
}
你的
Generic
类没有方法
get(int index)
,如果你想调用它,你应该创建这个方法

尝试将其添加到您的
Generic
类中

public T get(int index){
    return data.get(index);
}

您没有add方法您已经定义了getData()方法, 所以写


您没有add方法您已经定义了getData()方法, 所以写


您可以在泛型类中定义如下get方法:

   public T get(int i) {return data.get(i);}

您可以在泛型类中定义如下get方法:

   public T get(int i) {return data.get(i);}

@3kings是的,方法未定义。我以前从未定义过get方法,我该怎么做?@3kings是的,该方法未定义。我以前从来没有定义过get方法,我该怎么做?谢谢,这就成功了。我以前从来没有定义过这个方法,也没想过在这里这么做。谢谢谢谢,这个成功了。我以前从来没有定义过这个方法,也没想过在这里这么做。谢谢