gpt4 book ai didi

java - 从另一个通用类中创建的 ArrayList 打印单个项目?

转载 作者:行者123 更新时间:2023-12-01 16:55:10 25 4
gpt4 key购买 nike

尝试了解 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));
}
}

感谢您的帮助!

最佳答案

您的Generic<T>类没有方法 get(int index) ,如果你想调用它,你应该创建该方法...

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

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

关于java - 从另一个通用类中创建的 ArrayList 打印单个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058346/

25 4 0