Java tutorial
//package com.java2s; import java.lang.reflect.Type; public class Main { /** * When {@code Type} initialized with a value of an object, its fully qualified class name * will be prefixed with this. * * @see {@link ReflectionUtils#getClassName(Type)} */ private static final String TYPE_CLASS_NAME_PREFIX = "class "; private static final String TYPE_INTERFACE_NAME_PREFIX = "interface "; /** * {@link Type#toString()} value is the fully qualified class name prefixed * with {@link ReflectionUtils#TYPE_NAME_PREFIX}. This method will substring it, for it to be eligible * for {@link Class#forName(String)}. * * @param type the {@code Type} value whose class name is needed. * @return {@code String} class name of the invoked {@code type}. * * @see {@link ReflectionUtils#getClass()} */ public static String getClassName(Type type) { if (type == null) { return ""; } String className = type.toString(); if (className.startsWith(TYPE_CLASS_NAME_PREFIX)) { className = className.substring(TYPE_CLASS_NAME_PREFIX.length()); } else if (className.startsWith(TYPE_INTERFACE_NAME_PREFIX)) { className = className.substring(TYPE_INTERFACE_NAME_PREFIX.length()); } return className; } }