的可寫接口假設我有一個枚舉:枚舉值實現Hadoop的
public enum SomeEnumType implements Writable {
A(0), B(1);
private int value;
private SomeEnumType(int value) {
this.value = value;
}
@Override
public void write(final DataOutput dataOutput) throws IOException {
dataOutput.writeInt(this.value);
}
@Override
public void readFields(final DataInput dataInput) throws IOException {
this.value = dataInput.readInt();
}
}
我想通過它的一個實例作爲一些其他類的實例的一部分。
等於不起作用,因爲它不會考慮枚舉的內部變量,而且所有枚舉實例在編譯時都是固定的,並且不能在別處創建。
這是否意味着我無法通過Hadoop中的線路發送枚舉或者有解決方案?
儘管靜態方法是自定義寫入任意文件的很好解決方案,但您必須填充接口方法,因爲它們在內部調用。可編寫的作品,如Java API中的Externalizable。 –