以前用java.util.Arrays.toString(Dataset.collect())的时候是可以输出的,不知为何,今天编译的时候报了错误:
[INFO] -------------------------------------------------------------
[ERROR] /var/lib/jenkins/workspace/streamer-dev/streamer/src/main/java/cn/superid/streamer/compute/RegularQuery.java:[134,60] no suitable method found for toString(java.lang.Object)
method java.util.Arrays.toString(long[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to long[])
method java.util.Arrays.toString(int[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to int[])
method java.util.Arrays.toString(short[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to short[])
method java.util.Arrays.toString(char[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to char[])
method java.util.Arrays.toString(byte[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to byte[])
method java.util.Arrays.toString(boolean[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to boolean[])
method java.util.Arrays.toString(float[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to float[])
method java.util.Arrays.toString(double[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to double[])
method java.util.Arrays.toString(java.lang.Object[]) is not applicable
(argument mismatch; java.lang.Object cannot be converted to java.lang.Object[])
[ERROR] /var/lib/jenkins/workspace/streamer-dev/streamer/src/main/java/cn/superid/streamer/compute/RegularQuery.java:[145,54] no suitable method found for toString(java.lang.Object)
相关的java代码如下:
Dataset<PageView> inTimeRange = getInTimeRange(pageSet, last, unit, offset);
Timestamp epoch = Timestamp.valueOf(unit.update(last, offset + 1));
System.out.println("inTimeRange.collect()="+ Arrays.toString(inTimeRange.collect()));
无奈之下,加了类型强制转换(强制转换成Object[]
):
Dataset<PageView> inTimeRange = getInTimeRange(pageSet, last, unit, offset);
Timestamp epoch = Timestamp.valueOf(unit.update(last, offset + 1));
System.out.println("inTimeRange.collect()="+ Arrays.toString((Object[]) inTimeRange.collect()));
然后编译运行都没有问题了。