|
@@ -18,8 +18,10 @@
|
|
|
|
|
|
package org.apache.hadoop.io;
|
|
|
|
|
|
-import java.io.*;
|
|
|
-import java.lang.reflect.Array;
|
|
|
+import java.io.DataInput;
|
|
|
+import java.io.DataOutput;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.Arrays;
|
|
|
|
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
|
import org.apache.hadoop.classification.InterfaceStability;
|
|
@@ -42,7 +44,7 @@ import org.apache.hadoop.classification.InterfaceStability;
|
|
|
@InterfaceAudience.Public
|
|
|
@InterfaceStability.Stable
|
|
|
public class ArrayWritable implements Writable {
|
|
|
- private Class<? extends Writable> valueClass;
|
|
|
+ private final Class<? extends Writable> valueClass;
|
|
|
private Writable[] values;
|
|
|
|
|
|
public ArrayWritable(Class<? extends Writable> valueClass) {
|
|
@@ -64,7 +66,7 @@ public class ArrayWritable implements Writable {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public Class getValueClass() {
|
|
|
+ public Class<? extends Writable> getValueClass() {
|
|
|
return valueClass;
|
|
|
}
|
|
|
|
|
@@ -77,16 +79,16 @@ public class ArrayWritable implements Writable {
|
|
|
}
|
|
|
|
|
|
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;
|
|
|
+ return Arrays.copyOf(values, values.length);
|
|
|
}
|
|
|
|
|
|
- public void set(Writable[] values) { this.values = values; }
|
|
|
+ public void set(Writable[] values) {
|
|
|
+ this.values = values;
|
|
|
+ }
|
|
|
|
|
|
- public Writable[] get() { return values; }
|
|
|
+ public Writable[] get() {
|
|
|
+ return values;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public void readFields(DataInput in) throws IOException {
|
|
@@ -106,5 +108,11 @@ public class ArrayWritable implements Writable {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public String toString() {
|
|
|
+ return "ArrayWritable [valueClass=" + valueClass + ", values="
|
|
|
+ + Arrays.toString(values) + "]";
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|