java - 如何回收 Java 中声明的 arraylist 的泛型类型?

标签 java generics arraylist

我只是在玩,一个想法出现在我的脑海中,我决定尝试一下: 创建一个包含更多 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/

相关文章:

java - 实时图表 - ArrayList 转换错误

java - 从RestTemplate java调用azure逻辑应用程序的请求触发url

java - Java 中的泛型类型删除

java - volley- 如何从 Volley 中的 OnResponse 方法返回 ArrayList

python - 如何访问 typing.Generic 的类型参数?

C# 转换泛型类型(如 C++ 用户定义的转换)

java - 无法输出使用两个对象的ArrayList

java - 使用 Spring 的 REST Api 实现

java - 第 K 个最小元素和第 K 个元素?

java - 使用 PrintWriter 在 Java Servlet 上输出 XML