注意:没有经验的程序员...
我有一个数组列表(名为a),其中包含数组列表(名为b)。B是字符的数组列表。当我尝试通过执行以下操作从b中获取单个字符时
a.get(0).get(0);它会给我一个错误,说我给它的是一个对象,而不是一个字符。
发布于 2014-02-04 09:49:20
因为第二个get返回一个Object,所以第一个get似乎正确地返回了ArrayList (或List)。最可能的解释是,您有一个部分通用、部分原始的ArrayList,其类型大概是ArrayList<ArrayList>。泛型类型参数ArrayList本身就是一个原始类型,这意味着它将在调用get时返回一个Object。另一种可能性是你有一个ArrayList<ArrayList<Object>>。
完全指定泛型类型,从嵌套泛型一直到标量类型。
ArrayList<ArrayList<Character>> a;发布于 2014-02-04 09:45:21
这就是generics的本质。如果您在本例中没有指定a列表中的元素类型,请使用
List<List<Character>> a;但是,您将使用原始类型
List a;编译器只能假定您存储的是Objects,因此get()的结果也将被假定为没有任何get()的Object
a.get(0).get(0)
//^-this method can't be invoked from reference of Object typehttps://stackoverflow.com/questions/21541405
复制相似问题