// Get the fully-qualified name of a class Class cls = java.lang.String.class; String name = cls.getName(); // java.lang.String // Get the fully-qualified name of a inner class cls = java.util.Map.Entry.class; name = cls.getName(); // java.util.Map$Entry // Get the unqualified name of a class cls = java.util.Map.Entry.class; name = cls.getName(); if (name.lastIndexOf('.') > 0) { name = name.substring(name.lastIndexOf('.')+1); // Map$Entry } // The $ can be converted to a . name = name.replace('$', '.'); // Map.Entry // Get the name of a primitive type name = int.class.getName(); // int // Get the name of an array name = boolean[].class.getName(); // [Z name = byte[].class.getName(); // [B name = char[].class.getName(); // [C name = short[].class.getName(); // [S name = int[].class.getName(); // [I name = long[].class.getName(); // [J name = float[].class.getName(); // [F name = double[].class.getName(); // [D name = String[].class.getName(); // [Ljava.lang.String; name = int[][].class.getName(); // [[I // Get the name of void cls = Void.TYPE; name = cls.getName(); // void