Java源码示例:com.esotericsoftware.kryo.KryoSerializable
示例1
@Override
public void write(Kryo kryo, Output output, KryoSerializable object) {
if (object instanceof Document) {
((Document) object).write(kryo, output, getReducedResponse());
} else {
object.write(kryo, output);
}
}
示例2
public static ValueType getValueType(Object o) {
if (o == null) {
return ValueType.NULL;
} else if (o instanceof Boolean) {
return ValueType.BOOLEAN;
} else if (o instanceof String) {
return ValueType.STRING;
} else if (o instanceof Byte) {
return ValueType.BYTE;
} else if (o instanceof Short) {
return ValueType.SHORT;
} else if (o instanceof Integer) {
return ValueType.INT;
} else if (o instanceof Long) {
return ValueType.LONG;
} else if (o instanceof Float) {
return ValueType.FLOAT;
} else if (o instanceof Double) {
return ValueType.DOUBLE;
} else if (o instanceof BigDecimal) {
return ValueType.DECIMAL;
} else if (o instanceof LocalDate) {
return ValueType.DATE;
} else if (o instanceof LocalTime) {
return ValueType.TIME;
} else if (o instanceof LocalDateTime) {
return ValueType.TIMESTAMP;
} else if (o instanceof Duration) {
return ValueType.INTERVAL;
} else if (o instanceof byte[]) {
return ValueType.BINARY;
} else if (o instanceof Enum) {
return ValueType.ENUM;
} else if (o instanceof UUID) {
return ValueType.UUID;
} else if (o instanceof KryoSerializable) {
return ValueType.KRYO_SERIALIZABLE;
} else if (o instanceof Serializable) {
return ValueType.SERIALIZABLE;
} else {
throw new IllegalArgumentException("Unexpected data of type : " + o.getClass().getName());
}
}
示例3
protected Kryo initialValue() {
Kryo kryo = new Kryo();
kryo.register(byte[].class);
kryo.register(char[].class);
kryo.register(short[].class);
kryo.register(int[].class);
kryo.register(long[].class);
kryo.register(float[].class);
kryo.register(double[].class);
kryo.register(boolean[].class);
kryo.register(String[].class);
kryo.register(Object[].class);
kryo.register(KryoSerializable.class);
kryo.register(BigInteger.class);
kryo.register(BigDecimal.class);
kryo.register(Class.class);
kryo.register(Date.class);
//kryo.register(Enum.class);
kryo.register(EnumSet.class);
kryo.register(Currency.class);
kryo.register(StringBuffer.class);
kryo.register(StringBuilder.class);
kryo.register(Collections.EMPTY_LIST.getClass());
kryo.register(Collections.EMPTY_MAP.getClass());
kryo.register(Collections.EMPTY_SET.getClass());
kryo.register(Collections.singletonList(null).getClass());
kryo.register(Collections.singletonMap(null, null).getClass());
kryo.register(Collections.singleton(null).getClass());
kryo.register(TreeSet.class);
kryo.register(Collection.class);
kryo.register(TreeMap.class);
kryo.register(Map.class);
try {
kryo.register(Class.forName("sun.util.calendar.ZoneInfo"));
} catch (ClassNotFoundException e) {
//Noop
}
kryo.register(Calendar.class);
kryo.register(Locale.class);
kryo.register(BitSet.class);
kryo.register(HashMap.class);
kryo.register(Timestamp.class);
kryo.register(ArrayList.class);
int size = idList.size();
for (int i = 0; i < size; i++) {
kryo.register(classList
.get(i),
serializerList
.get(i),
idList.get(i));
}
kryo.setRegistrationRequired(true);
kryo.setReferences(false);
kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
return kryo;
}
示例4
protected Kryo initialValue() {
Kryo kryo = new Kryo();
kryo.register(byte[].class);
kryo.register(char[].class);
kryo.register(short[].class);
kryo.register(int[].class);
kryo.register(long[].class);
kryo.register(float[].class);
kryo.register(double[].class);
kryo.register(boolean[].class);
kryo.register(String[].class);
kryo.register(Object[].class);
kryo.register(KryoSerializable.class);
kryo.register(BigInteger.class);
kryo.register(BigDecimal.class);
kryo.register(Class.class);
kryo.register(Date.class);
//kryo.register(Enum.class);
kryo.register(EnumSet.class);
kryo.register(Currency.class);
kryo.register(StringBuffer.class);
kryo.register(StringBuilder.class);
kryo.register(Collections.EMPTY_LIST.getClass());
kryo.register(Collections.EMPTY_MAP.getClass());
kryo.register(Collections.EMPTY_SET.getClass());
kryo.register(Collections.singletonList(null).getClass());
kryo.register(Collections.singletonMap(null, null).getClass());
kryo.register(Collections.singleton(null).getClass());
kryo.register(TreeSet.class);
kryo.register(Collection.class);
kryo.register(TreeMap.class);
kryo.register(Map.class);
try {
kryo.register(Class.forName("sun.util.calendar.ZoneInfo"));
} catch (ClassNotFoundException e) {
//Noop
}
kryo.register(Calendar.class);
kryo.register(Locale.class);
kryo.register(BitSet.class);
kryo.register(HashMap.class);
kryo.register(Timestamp.class);
kryo.register(ArrayList.class);
int size = idList.size();
for (int i = 0; i < size; i++) {
kryo.register(classList
.get(i),
serializerList
.get(i),
idList.get(i));
}
kryo.setRegistrationRequired(true);
kryo.setReferences(false);
kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
return kryo;
}