hadoop中的toArray()
类中有一个ArrayWritable
方法,它应该意味着:将此ArrayWritable
转换为数组。但它的语法是:
public Object toArray()
那么我们应该如何使用这个功能呢? doc包上没有关于它的文档。
答案 0 :(得分:3)
通常ArrayWritable必须适当延长
public class TextArrayWritable extends ArrayWritable {
public TextArrayWritable() {
super(Text.class);
}
}
以下是ArrayWritable
中的代码public ArrayWritable(Class<? extends Writable> valueClass) {
if (valueClass == null) {
throw new IllegalArgumentException("null valueClass");
}
this.valueClass = valueClass;
}
public Object toArray() {
Object result = Array.newInstance(valueClass, values.length);
for (int i = 0; i < values.length; i++) {
Array.set(result, i, values[i]);
}
return result;
}
因此,ArrayWritable #toArray将返回TextArrayWritable的super(Text.class);
或相应类中指定类型的java.lang.reflect.Array。