Java 转换列表<;字符串>;到新对象[]{}
我有这个:Java 转换列表<;字符串>;到新对象[]{},java,Java,我有这个: data.put(1, new Object[] { listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(), listUserColumns.get(
data.put(1,
new Object[] { listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName() });
我想将这个listUserColums
(类型字符串列表)直接转换到新的对象[]
(类型java.lang.Object
),但不知道如何转换?您可以执行以下方法:
ArrayList arr=new ArrayList();
阿雷·托雷()
其中:
返回一个数组,该数组按正确顺序(从第一个元素到最后一个元素)包含此列表中的所有元素
这取决于你打算获得什么,而这个问题并不清楚 当需要获取列表中所有元素的名称数组时,可以使用
Stream
但是,无法强制转换此listUserColums,因为数组是ArrayList
的内部表示形式。您可以创建一个新数组,其中包含对与此列表相同元素的引用
Object[] elements = listUserColumns.toArray();
在您的情况下,看起来
listUserColumns
不是List
,这就是为什么这些方法的结果会不同(在字符串的第一个大小写数组中,在自定义类型的第二个大小写数组中)。看起来您想要的更像
data.put(1, listUserColumns.stream().map(c -> c.getName()).toArray());
对于一个子集
data.put(1, listUserColumns.subList(from, to)
.stream().map(c -> c.getName()).toArray());
每次调用
getName()
都会返回什么?可能重复的Object[]objects=listUserColumns.stream().map(o->o.getName()).toArray()
但是您拥有的并不是真正的列表,是吗?它看起来像是某类的列表,该类具有getName()
方法。您的代码似乎与描述不一致。如果listUserColumns
具有类型List
,则从中检索的元素没有名为“getName”的方法。如果它真的是一个列表
,那么List.toArray()
会做你想做的事情。
data.put(1, listUserColumns.stream().map(c -> c.getName()).toArray());
data.put(1, listUserColumns.subList(from, to)
.stream().map(c -> c.getName()).toArray());