首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arraylist字符在被访问时意外地转换为对象

Arraylist字符在被访问时意外地转换为对象
EN

Stack Overflow用户
提问于 2014-02-04 09:36:45
回答 2查看 34关注 0票数 0

注意:没有经验的程序员...

我有一个数组列表(名为a),其中包含数组列表(名为b)。B是字符的数组列表。当我尝试通过执行以下操作从b中获取单个字符时

代码语言:javascript
复制
a.get(0).get(0);

它会给我一个错误,说我给它的是一个对象,而不是一个字符。

EN

回答 2

Stack Overflow用户

发布于 2014-02-04 09:49:20

因为第二个get返回一个Object,所以第一个get似乎正确地返回了ArrayList (或List)。最可能的解释是,您有一个部分通用、部分原始的ArrayList,其类型大概是ArrayList<ArrayList>。泛型类型参数ArrayList本身就是一个原始类型,这意味着它将在调用get时返回一个Object。另一种可能性是你有一个ArrayList<ArrayList<Object>>

完全指定泛型类型,从嵌套泛型一直到标量类型。

代码语言:javascript
复制
ArrayList<ArrayList<Character>> a;
票数 2
EN

Stack Overflow用户

发布于 2014-02-04 09:45:21

这就是generics的本质。如果您在本例中没有指定a列表中的元素类型,请使用

代码语言:javascript
复制
List<List<Character>> a;

但是,您将使用原始类型

代码语言:javascript
复制
List a;

编译器只能假定您存储的是Objects,因此get()的结果也将被假定为没有任何get()Object

代码语言:javascript
复制
a.get(0).get(0)
       //^-this method can't be invoked from reference of Object type
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21541405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档