繁体   English   中英

java将对象转换为列表<SomeType>

[英]java cast Object to List<SomeType>

我有一些需要List<SomeType>函数,并且我有一个对象,我知道它应该是ArrayList<SomeType>类型。

我该如何测试它是否真的是真的,以及如何在没有警告的情况下将对象转换为该类型?

就像是:

ArrayList<String> testL = new ArrayList<String>();

Object o = testL;
if (o instanceof ArrayList<String>){
  List<String> l = (ArrayList<String>)o;
}

instanceof检查给出一个错误,而[unchecked]给出一个[unchecked]警告。

一个简单的演员表无法实现您想要做的事情。 这与Java代码编译期间的类型擦除有关。 您可以执行以下两项操作之一:

  1. 强制转换并接受未经检查的警告(您可以通过在方法上添加@SuppressWarning来取消警告)。 仅当确定对象是列表类型的实际对象时,才执行此操作,否则将在运行时获取ClassCastExceptions。
  2. 根据列表检查变量的类型,然后对其进行迭代,将每个条目添加到类型T的新列表中。然后,可以在添加类型之前针对类型T验证原始列表中的每个条目。 (不这样做也会导致未经检查的警告)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM