Java:我可以将对象列表转换为String []列表,反之亦然?

dee*_*dee 6 java casting list object

这可能不通过列表并投射对象吗?

如果可能,我还需要转换List<Object>List<T>(T =预定义对象)?

编辑:为了澄清,我试图List<Object>用作我的代码中广泛使用的类方法的返回类型.

And*_*mas 9

实际上,由于类型擦除,这是可能的.您可以将参数化类型转换为原始类型,反之亦然.

    List<Object> listO = new ArrayList<Object>( );
    listO.add( "Foo" );
    listO.add( "Bar" );

    List listQ = listO;
    List<String> listS = (List<String>) listQ;
Run Code Online (Sandbox Code Playgroud)

然而,这并不能意味着这是一个好主意.这适用于参数化类型的编译时类型检查.如果列表包含您期望的类型以外的对象,则可能会出现意外结果.


Mat*_*all 6

不.这根本不是有效的转换,因为并非所有Object的都是String[].


您可以通过2行代码自行确定.


编辑

听起来你需要更通用地编写方法.像这样的东西:

public <T> List<T> getGenericList()
{
    return new ArrayList<T>();
}
Run Code Online (Sandbox Code Playgroud)

这可以返回List<String[]>如下:

List<String[]> listOfStringArr = getGenericList();
Run Code Online (Sandbox Code Playgroud)

  • 是的,它给了我一个错误,这就是我问这个问题的原因.也许有一种我不知道的方法. (2认同)