ClassUtil { public static <T> T getPrimitiveDefaultValue(Class<T> type) { if (type == null) { return null; } @SuppressWarnings("unchecked") PrimitiveInfo<T> info = (PrimitiveInfo<T>) PRIMITIVES.get(type.getName()); if (info != null) { return info.defaultValue; } return null; }  static String getClassNameAsResource(String className); static Class<?> getPrimitiveType(String name); static Class<?> getPrimitiveType(Class<?> type); @SuppressWarnings("unchecked") static Class<T> getWrapperTypeIfPrimitive(Class<T> type); static T getPrimitiveDefaultValue(Class<T> type); static boolean isPrimitiveOrWrapper(Class<?> clazz); static Class<?> getArrayClass(Class<?> componentType); static Class<?> getArrayClass(Class<?> componentClass, int dimension); static Class<?> getArrayComponentType(Class<?> type); static boolean isInstance(Class<?> clazz, Object object); static boolean canInstatnce(Class<T> clazz); static List<Class<?>> getAllSuperclasses(Class<?> clazz); static Class<?>[] getAllSuperclassesAsArray(Class<?> clazz); static List<Class<?>> getAllInterfaces(Class<?> clazz); static Class<?>[] getAllInterfacesAsArray(Class<?> clazz); static Set<Class<?>> getAllInterfacesAsSet(Class<?> clazz, ClassLoader classLoader); static boolean isVisible(Class<?> clazz, ClassLoader classLoader); static boolean isCacheSafe(Class<?> clazz, ClassLoader classLoader); static boolean isInterfaceImpl(Class<?> thisClass, Class<?> targetInterface); static boolean isSubClass(Class<?> thisClass, Class<?> target); static boolean isAssignable(Class<?>[] classes, Class<?>[] fromClasses); static boolean isAssignable(Class<?> clazz, Class<?> fromClass); static String locateClass(Class<?> clazz); static String locateClass(String className); static String locateClass(String className, ClassLoader loader); static String getFriendlyClassNameForObject(Object object); static String getFriendlyClassName(Class<?> clazz); static String getFriendlyClassName(String javaClassName); static String getSimpleClassNameForObject(Object object); static String getSimpleClassNameForObject(Object object, boolean processInnerClass); static String getSimpleClassName(Class<?> clazz); static String getSimpleClassName(Class<?> clazz, boolean proccessInnerClass); static String getSimpleClassName(String javaClassName); static String getSimpleClassName(String javaClassName, boolean proccesInnerClass); static String getSimpleMethodSignature(Method method); static String getSimpleMethodSignature(Method method, boolean withClassName); static String getSimpleMethodSignature(Method method, boolean withModifiers, boolean withReturnType,
            boolean withClassName, boolean withExceptionType); static String getShortClassName(String className); static String getShortClassName(Class<?> clazz); static final char INNER_CLASS_SEPARATOR_CHAR; static final String INNER_CLASS_SEPARATOR; }
@Test public void getPrimitiveDefaultValue() { assertEquals(new Integer(0), ClassUtil.getPrimitiveDefaultValue(int.class)); assertEquals(new Long(0), ClassUtil.getPrimitiveDefaultValue(long.class)); assertEquals(new Short((short) 0), ClassUtil.getPrimitiveDefaultValue(short.class)); assertEquals(new Double(0), ClassUtil.getPrimitiveDefaultValue(double.class)); assertEquals(new Float(0), ClassUtil.getPrimitiveDefaultValue(float.class)); assertEquals(new Character('\0'), ClassUtil.getPrimitiveDefaultValue(char.class)); assertEquals(new Byte((byte) 0), ClassUtil.getPrimitiveDefaultValue(byte.class)); assertEquals(Boolean.FALSE, ClassUtil.getPrimitiveDefaultValue(boolean.class)); assertEquals(null, ClassUtil.getPrimitiveDefaultValue(void.class)); assertEquals(new Integer(0), ClassUtil.getPrimitiveDefaultValue(Integer.class)); assertEquals(new Long(0), ClassUtil.getPrimitiveDefaultValue(Long.class)); assertEquals(new Short((short) 0), ClassUtil.getPrimitiveDefaultValue(Short.class)); assertEquals(new Double(0), ClassUtil.getPrimitiveDefaultValue(Double.class)); assertEquals(new Float(0), ClassUtil.getPrimitiveDefaultValue(Float.class)); assertEquals(new Character('\0'), ClassUtil.getPrimitiveDefaultValue(Character.class)); assertEquals(new Byte((byte) 0), ClassUtil.getPrimitiveDefaultValue(Byte.class)); assertEquals(Boolean.FALSE, ClassUtil.getPrimitiveDefaultValue(Boolean.class)); assertEquals(null, ClassUtil.getPrimitiveDefaultValue(Void.class)); assertEquals(null, ClassUtil.getPrimitiveDefaultValue(String.class)); assertEquals(null, (Object) ClassUtil.getPrimitiveDefaultValue(long[][].class)); }