java警告是原始类型_警告ArrayList是原始类型。泛型类型ArrayList的引用 应该参数化...

小编典典

您绝对应该阅读有关Java泛型的本教程

:http :

//docs.oracle.com/javase/tutorial/java/generics/

简而言之:

许多Java类和类型(称为 泛型类 或 泛型类型 ),通常是集合,具有所谓的 类型参数 ,例如Ein

ArrayList(E只是一个任意选择的名称,其他类将其命名为as T或其他):

public class ArrayList extends ... {

public E get(int index) { ... }

public boolean add(E element) { ... }

// other methods...

}

现在,当您创建此类的实例时,您可以定义类型参数的具体值,例如String(E通常可以求值为所需的任何类型):

ArrayList stringList = new ArrayList();

从现在开始,所有的Es的“改为”通过String为stringList可变的,所以你可以从它只是字符串添加到它,并获得唯一的字符串。编译器会检查您是否错误地添加了其他类型的对象:

stringList.add(Integer.valueOf(1));

// compile error - cannot add Integer to ArrayList of Strings

但是,由于Java 5中已添加了泛型,因此仍可以在不使用泛型的情况下编写代码以实现向后兼容性。所以你可以这样写:

ArrayList list = new ArrayList();

但是您将失去所有类型检查的好处。E方法签名中的Objects 变成简单的s。

list.add(Integer.valueOf(42)); // adding an Integer

list.add("aaa"); // adding a String

Object something = list.get(0); // unknown type of returned object, need to cast

Integer i0 = (Integer) something; // this unsafe cast works...

Integer i1 = (Integer) list.get(1); // but this fails with a ClassCastException

// because you cannot cast a String to Integer

使用 原始类型(即省略了类型参数的泛型类型)是不安全的事实,这是发出警告的原因。而不是仅ArrayList使用ArrayList或ArrayList或您所items要使用的类型。

2020-10-07

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值