Java:我可以将对象列表转换为字符串[]列表,反之亦然吗?
在不查看列表并强制转换对象的情况下,是否可以执行此操作 如果可能的话,我还需要将Java:我可以将对象列表转换为字符串[]列表,反之亦然吗?,java,list,object,casting,Java,List,Object,Casting,在不查看列表并强制转换对象的情况下,是否可以执行此操作 如果可能的话,我还需要将List转换为List(T=预定义对象) 编辑:为了澄清,我尝试使用List作为类方法的返回类型,该类方法在我的代码中广泛使用。否。这根本不是一个有效的转换,因为并非所有对象都是字符串[] 您可以在两行代码中自行确定这一点 编辑 听起来您需要更一般地编写方法。大概是这样的: public <T> List<T> getGenericList() { return new Array
List
转换为List
(T=预定义对象)
编辑:为了澄清,我尝试使用
List
作为类方法的返回类型,该类方法在我的代码中广泛使用。否。这根本不是一个有效的转换,因为并非所有对象
都是字符串[]
您可以在两行代码中自行确定这一点
编辑 听起来您需要更一般地编写方法。大概是这样的:
public <T> List<T> getGenericList()
{
return new ArrayList<T>();
}
公共列表getGenericList()
{
返回新的ArrayList();
}
这可以返回一个列表
,如下所示:
List<String[]> listOfStringArr = getGenericList();
List listofstringstarr=getGenericList();
否。如果第一个列表中的对象实际上不是t
,该怎么办
也就是说,您可以尝试将List
转换为List
(为异常做好准备)
/e1
我不知道您的代码的具体内容,但听起来创建一个新代码对您是有益的。从定义上讲,这是不可能的。java中的所有类都扩展对象。理论上,对象列表可以包含您想要的每种类型的元素。您想如何将某个内容转换为特定类型T
?实际上,这是可能的,因为类型擦除。您可以将参数化类型转换为原始类型,反之亦然
List<Object> listO = new ArrayList<Object>( );
listO.add( "Foo" );
listO.add( "Bar" );
List listQ = listO;
List<String> listS = (List<String>) listQ;
List listO=newarraylist();
列表。添加(“Foo”);
列表。添加(“酒吧”);
List listQ=listO;
List listS=(List)listQ;
然而,这并不意味着这是一个好主意。这适用于参数化类型的编译时类型检查。如果列表中包含的对象不是预期的类型,则可能会出现意外结果 我想我可以使用instanceof
?@deefoo instanceof T
其中foo
是一个对象,因为它是不可能的。是的,它给了我一个错误,这就是我问这个问题的原因。也许有一种方法我不知道。将它声明为列表
。但它并不总是列表
,有时它是列表
,这取决于你对“转换”的定义:要做的破坏性较小的事情是转换为非类型列表。从中可以强制转换为类型化列表,但它不会强制转换其中的对象。很高兴知道您为什么会这样做(失去类型安全性通常不是一个好主意)。@Viruzzo,我知道这不是最好的方法,但我正在尝试使用已经可用的代码,有时我使用它来获取列表
,有时它用于列表
(T=预定义对象)