在您原始未编辑问题的代码中,没有元素被添加到 java.util.ArrayList 对象中。
java.util.List<String> list = new java.util.ArrayList<String>();
Object[] array = list.toArray(); // array.length = 0
IDataCursor cursor = pipeline.getCursor();
IDataUtil.put(cursor, "array", array);
IDataUtil.put(cursor, "array.length", array.length);
cursor.destroy();
您在 Designer 中的“服务结果”选项卡的屏幕截图实际上显示ListOfFileNames
了您的服务正确返回的内容,因此您的部分代码正在运行。我知道这一点,因为如果它没有被退回,那么它根本不会列在“服务结果”选项卡中。它在那里列出的事实意味着它已正确返回。
但是您认为它不起作用的原因是因为ListOfFileNames
它是一个长度为零的数组,因此 Designer 在“服务结果”选项卡的右列中没有可显示的值。ArrayList
如果您在调用它之前至少添加了一个元素.toArray()
,那么 Designer 将向您展示一些内容:结果数组的内容。
我在 Designer 屏幕截图中注意到的另一个ListOfFileNames
问题Object[]
是String[]
. 那是因为您使用的是.toArray()
不带参数的,它返回一个Object[]
. 使用另一个版本,.toArray(T[] a)
如下所示,以确保您得到一个String[]
返回:
java.util.List<String> list = new java.util.ArrayList<String>();
list.add("item1");
String[] array = list.toArray(new String[0]); // array.length = 1
IDataCursor cursor = pipeline.getCursor();
IDataUtil.put(cursor, "array", array);
IDataUtil.put(cursor, "array.length", array.length);
cursor.destroy();