Fix bug with primitive wrappers.
This commit is contained in:
parent
ebc7818e00
commit
c32524387a
|
@ -3,6 +3,7 @@ package com.andrewlalis.record_net;
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,6 +13,12 @@ import java.util.UUID;
|
||||||
public final class IOUtil {
|
public final class IOUtil {
|
||||||
private IOUtil() {}
|
private IOUtil() {}
|
||||||
|
|
||||||
|
public static boolean isPrimitiveOrWrapper(Class<?> type) {
|
||||||
|
final Set<Class<?>> types = Set.of(Byte.class, Short.class, Integer.class, Character.class, Float.class, Double.class, Long.class, Boolean.class);
|
||||||
|
return type.isPrimitive() || types.contains(type);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static Object readPrimitive(Class<?> type, DataInputStream dIn) throws IOException {
|
public static Object readPrimitive(Class<?> type, DataInputStream dIn) throws IOException {
|
||||||
if (type.equals(Integer.class) || type.equals(int.class)) return dIn.readInt();
|
if (type.equals(Integer.class) || type.equals(int.class)) return dIn.readInt();
|
||||||
if (type.equals(Short.class) || type.equals(short.class)) return dIn.readShort();
|
if (type.equals(Short.class) || type.equals(short.class)) return dIn.readShort();
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class RecordMappedSerializer implements RecordSerializer {
|
||||||
if (type.equals(String.class)) {
|
if (type.equals(String.class)) {
|
||||||
return IOUtil.readString(dIn);
|
return IOUtil.readString(dIn);
|
||||||
}
|
}
|
||||||
if (type.isPrimitive()) {
|
if (IOUtil.isPrimitiveOrWrapper(type)) {
|
||||||
return IOUtil.readPrimitive(type, dIn);
|
return IOUtil.readPrimitive(type, dIn);
|
||||||
}
|
}
|
||||||
throw new UnsupportedMessageTypeException(type);
|
throw new UnsupportedMessageTypeException(type);
|
||||||
|
@ -132,7 +132,7 @@ public class RecordMappedSerializer implements RecordSerializer {
|
||||||
IOUtil.writeUUID((UUID) obj, dOut);
|
IOUtil.writeUUID((UUID) obj, dOut);
|
||||||
} else if (type.equals(String.class)) {
|
} else if (type.equals(String.class)) {
|
||||||
IOUtil.writeString((String) obj, dOut);
|
IOUtil.writeString((String) obj, dOut);
|
||||||
} else if (type.isPrimitive()) {
|
} else if (IOUtil.isPrimitiveOrWrapper(type)) {
|
||||||
IOUtil.writePrimitive(obj, dOut);
|
IOUtil.writePrimitive(obj, dOut);
|
||||||
} else {
|
} else {
|
||||||
throw new UnsupportedMessageTypeException(type);
|
throw new UnsupportedMessageTypeException(type);
|
||||||
|
|
Loading…
Reference in New Issue