diff --git a/jOOQ/src/main/java/org/jooq/tools/reflect/Reflect.java b/jOOQ/src/main/java/org/jooq/tools/reflect/Reflect.java index ce8b424cf5..3956cb8b02 100644 --- a/jOOQ/src/main/java/org/jooq/tools/reflect/Reflect.java +++ b/jOOQ/src/main/java/org/jooq/tools/reflect/Reflect.java @@ -165,6 +165,38 @@ public class Reflect { return new Reflect(type, object); } + /** + * Get the initialisation or default value for any given type. + *

+ * This returns: + *

+ */ + @SuppressWarnings("unchecked") + public static T initValue(Class type) { + return type == boolean.class + ? (T) Boolean.FALSE + : type == byte.class + ? (T) Byte.valueOf((byte) 0) + : type == short.class + ? (T) Short.valueOf((short) 0) + : type == int.class + ? (T) Integer.valueOf(0) + : type == long.class + ? (T) Long.valueOf(0L) + : type == double.class + ? (T) Double.valueOf(0.0) + : type == float.class + ? (T) Float.valueOf(0.0f) + : type == char.class + ? (T) Character.valueOf((char) 0) + : (T) null; + } + /** * Conveniently render an {@link AccessibleObject} accessible. *