private boolean instanceOf(Object value, Class<?> type) { if (value == null) { return true; } if (type.isPrimitive()) { if (type.equals(boolean.class)) { return instanceOf(value, Boolean.class); } else if (type.equals(char.class)) { return instanceOf(value, Character.class); } else if (type.equals(byte.class)) { return instanceOf(value, Byte.class); } else if (type.equals(short.class)) { return instanceOf(value, Short.class); } else if (type.equals(int.class)) { return instanceOf(value, Integer.class); } else if (type.equals(long.class)) { return instanceOf(value, Long.class); } else if (type.equals(float.class)) { return instanceOf(value, Float.class); } else if (type.equals(double.class)) { return instanceOf(value, Double.class); } } else { return type.isInstance(value); } return false; }
private boolean instanceOf(Object value, Class<?> type) { if (value == null) { return true; } if (type.isPrimitive()) { if (type.equals(boolean.class)) { return instanceOf(value, Boolean.class); } else if (type.equals(char.class)) { return instanceOf(value, Character.class); } else if (type.equals(byte.class)) { return instanceOf(value, Byte.class); } else if (type.equals(short.class)) { return instanceOf(value, Short.class); } else if (type.equals(int.class)) { return instanceOf(value, Integer.class); } else if (type.equals(long.class)) { return instanceOf(value, Long.class); } else if (type.equals(float.class)) { return instanceOf(value, Float.class); } else if (type.equals(double.class)) { return instanceOf(value, Double.class); } } else { return type.isInstance(value); } return false; }
@SuppressWarnings("unchecked") private <V> V invokeGetter(RawEntity<?> entity, K key, String name, Class<V> type) throws Throwable { Object value = values.get(name); if (instanceOf(value, type)) { return handleNullReturn((V) value, type); } else if (isBigDecimal(value, type)) { // Oracle for example returns BigDecimal when we expect doubles return (V) handleBigDecimal(value, type); } return handleNullReturn(null, type); }
@SuppressWarnings("unchecked") private <V> V invokeGetter(RawEntity<?> entity, K key, String name, Class<V> type) throws Throwable { Object value = values.get(name); if (instanceOf(value, type)) { return handleNullReturn((V) value, type); } else if (isBigDecimal(value, type)) { // Oracle for example returns BigDecimal when we expect doubles return (V) handleBigDecimal(value, type); } return handleNullReturn(null, type); }