我想知道我是否在Java中使用以下ArrayList和Generics:
int s=0;
ArrayList<Integer> items=new ArrayList();
for (int i=0;i<10;i++){
items.add(i);
}
for (int j=0;j<items.size();j++){
s=s+items.get(j);
}
Run Code Online (Sandbox Code Playgroud)
或者更好地使用这种原始形式?
List listitem=new ArrayList();
for (int i=0;i<10;i++){
listitem.add(i);
}
for (int j=0;j<listitem.size();j++){
s=s+(int)listitem.get(j);
}
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)
我的意思是我已经读过当使用Generics时出现了变量的拆箱和装箱问题,即从一种原始类型变为一种对象.那么推荐哪一款?在什么情况下,仿制药将是最佳选择?
谢谢
你几乎不应该在现代Java中使用原始形式.有几个地方很难不去,但总的来说这是一个坏主意.
在第二个片段中使用raw List和ArrayListtypes绝不会阻止拳击 - 它只会降低类型安全性.在通用版本中,您不需要强制转换,int因为编译器知道列表必须只包含Integer引用或空值; 在原始形式中没有编译时保证.没有什么可以阻止你向列表中添加完全不同类型的引用 - 例如字符串.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |