【发布时间】:2015-02-14 22:04:24
【问题描述】:
在浏览了很多帖子和建议后,我发现与其使用 ArrayList 这样的具体实现,不如使用 List,以允许 List 接口的不同实现之间具有灵活性。到目前为止,我看到很多程序员建议下面这行代码:
List list = new ArrayList();
但是,这会在编译器中给出使用原始类型 List 和 ArrayList 的警告,并且它们实际上应该被参数化。
与这些警告的同义词是,我发现有几篇帖子告诉我,不应该使用原始类型,并且我应该利用 java 提供的方便的泛型。
就个人而言,我正在尝试实现一个充当表格的类,该表格需要一个二维列表结构,其中 ArrayLists 在内部使用。 我正在尝试实现以下代码行:
List<List> table;
table = new ArrayList();
table.add(new ArrayList());
在我的脑海中设想,表结构应该能够容纳多种变量类型,例如原始数据类型以及字符串变量类型。我试图实现泛型,例如使用
List<List<Object>> table = new ArrayList<ArrayList<Object>>();
但我收到了很多错误,因此到目前为止失败了。
我对编程比较陌生,攻读计算机科学专业,如果我对上面举例说明的代码行有任何可怕的误解,请原谅我。
谢谢。
【问题讨论】:
-
你仍然在这里使用原始类型
List<List>。阅读this,它解决了你最后的sn-p代码。 -
这应该是
List<List<Object>> table = new ArrayList<List<Object>>();并且您可能正在寻找List<List<?>> table = new ArrayList<List<?>>();但这仍然只是存储Object而不一定是String或任何东西。 -
我现在真的明白了。谢谢。
标签: java list generics arraylist parameterized