我有我的Field和一个字节数组或一个字符串(我可以从Jedis返回) 将此字段序列化/反序列化为人类可读值的好方法是什么?
我知道那里有一种方式......我只是没有看到它。 我需要提到的另一件事是,这需要适用于Serializable Java Objects和Primitives
我目前的尝试:
protected void loadField(Jedis jedis, String key, Field field) {
String value = jedis.get(key);
Class clazz = field.getClass();
try {
if (Serializable.class.isAssignableFrom(clazz)) {
ByteArrayInputStream bis = new ByteArrayInputStream(value.getBytes());
ObjectInput in = new ObjectInputStream(bis);
field.set(this, in.readObject());
} else if (clazz.isAssignableFrom(Integer.TYPE)) {
field.set(this, Integer.parseInt(value));
} else if (clazz.isAssignableFrom(Double.TYPE)) {
field.set(this, Double.parseDouble(value));
} else if (clazz.isAssignableFrom(Long.TYPE)) {
field.set(this, Long.parseLong(value));
} else if (clazz.isAssignableFrom(Short.TYPE)) {
field.set(this, Short.parseShort(value));
} else if (clazz.isAssignableFrom(Float.TYPE)) {
field.set(this, Float.parseFloat(value));
}
} catch (Exception e) {
e.printStackTrace();
}
}
我还没有将数据设置为Jedis KVS,因此,这可以完全改变。 有什么想法吗?