我只是在玩,一个想法出现在我的脑海中,我决定尝试一下: 创建一个包含更多 ArrayList 的 ArrayList。
例如,我创建了一个名为 intList 的 ArrayList,它保存整数,然后用值填充它。之后我做了一个 stringList 并也填充了它。然后我创建了一个 ArrayList,其中包含其他称为 aList 的 ArrayList,并向其中添加了 intList 和 stringList。
现在我面临的问题是,如果我从 aList 中检索对象,它无法识别泛型类型是 int 还是 string。
这是我尝试过的代码:
import java.util.*;
public class Practice {
public static void main(String[] args) {
List<ArrayList> list = new ArrayList<ArrayList>();
ArrayList<int> intList = new ArrayList<int>();
intList.add(1);
intList.add(2);
intList.add(3);
ArrayList<String> stringList = new ArrayList<String>();
stringList.add("One");
stringList.add("Two");
stringList.add("Three");
list.add(intList);
list.add(stringList);
for(ArrayList lst : list) {
for(ArrayList lt : lst) {
System.out.println(lt);
}
}
}
}
最佳答案
Java有“泛型类型删除”,这意味着泛型的类型参数被“删除”。一旦您创建了ArrayList<T>
没有办法找出什么T
是。
关于java - 如何回收 Java 中声明的 arraylist 的泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4755282/