Our original code is something like:
Object bean = ...
Field field = ...
Object value = ... // Retrieved from Database
field.set(bean, value);
But the type of bean field may be different from type of value, e.g. our bean is an Integer but value retrieved from db may be Byte or Short.
How can I write some simple code to convert boxed types without reflection exception?
Here is my solution but not as simple as my expectation:
if (field.getType().equals(Integer.class)) {
field.set(bean, Integer.valueOf(((Number) value).intValue()));
} else if (field.getType().equals(Short.class)) {
field.set(bean, Short.valueOf(((Number) value).shortValue()));
} else if (...) {
...
}
Aucun commentaire:
Enregistrer un commentaire