Je dois changer le type de données du champ quantity
tout sérialisation et de-serialization.`Sérialisation Java, Puis-je changer le type de données de la variable?
Double
-Integer
dans writeObject();
Integer
à Double
dans readObject();
classe article
class Items implements Serializable {
private static final long serialVersionUID = 1537402844776823455L;
Double quantity;
private void writeObject(ObjectOutputStream o) throws IOException {
PutField field = o.putFields();
field.put("quantity", quantity.intValue());
}
private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException {
GetField field = stream.readFields();
if((field.get("quantity", new Double(0)) instanceof Integer)){
quantity = ((Integer) field.get("quantity", new Integer(0))).doubleValue();
}else if((field.get("quantity", new Double(0)) instanceof Double)){
quantity = (Double) field.get("quantity", new Double(0));
}
}
}
I essayé cela mais la quantité est toujours double pendant la dé-sérialisation.
quantity
Le champ doit être Double
dans la classe et Integer
dans l'objet sérialisé. Est-ce possible avec la sérialisation?
Pourquoi? Vous allez perdre à la fois la précision et la portée. – EJP
Le serveur recevra deux types d'objets sérialisés dont un avec champ de quantité Double autre avec entier, Au côté serveur, il est nécessaire de désérialiser les deux requêtes et de les transtyper en double. –