Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换列表<;字符串>;到新对象[]{}_Java - Fatal编程技术网

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());