【发布时间】:2015-12-03 05:13:40
【问题描述】:
试图了解 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;
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));
}
}
感谢您的帮助!
【问题讨论】:
-
@3kings 是的,方法未定义。我以前从未定义过get方法,我该怎么做?