不通过遍历列表并转换对象,这是否可能?
如果可能,我还需要将 List<Object>
转换为 List<T>
(其中 T = 预定义的 Object)?
编辑:为了澄清,我正在尝试使用 List<Object>
作为类方法的返回类型,该方法在我的代码中广泛使用。
实际上,这是可能的,因为有类型擦除。您可以将参数化类型转换为原始类型,反之亦然。
List<Object> listO = new ArrayList<Object>( );
listO.add( "Foo" );
listO.add( "Bar" );
List listQ = listO;
List<String> listS = (List<String>) listQ;
然而,这并不意味着这是一个好主意。这种方法可以避开参数化类型的编译时类型检查。如果您的列表包含了您所期望的类型以外的对象,则可能会出现意想不到的结果。
String[]
。
听起来你需要更通用的方法。类似这样:
public <T> List<T> getGenericList()
{
return new ArrayList<T>();
}
List<String[]>
:List<String[]> listOfStringArr = getGenericList();
List<String[]>
。 - Matt BallList<String[]>
,有时它是 List<T>
。 - dee按定义来说是不可能的。Java中的所有类都继承自Object。理论上,对象列表可以包含您想要的任何类型的元素。您如何将某些内容转换为特定的类型 T
?
List<String[]>
,有时是为了获取List<T>
(其中T = 预定义对象)。 - dee