方式一:
通过类、枚举、接口、注解、数组类型、原生类型的名称.class
package com.rong.test; public class TestClass { public static void main(String[] args) { // 原生类型 Class<Integer> intClass = int.class; System.out.println(intClass.getName()); // 原生数组类型 Class<int[]> intArrayClass = int[].class; System.out.println(intArrayClass.getName()); // 类 Class<String> stringClass = String.class; System.out.println(stringClass.getName()); } }
方式二:
对象.getClass()
由于原生类型不是对象,所以无法使用getClass(),其他类型都是支持的。
/// String string = new String(); Class<? extends String> strClass = string.getClass(); System.out.println(strClass.getName());//全名,包名+类名(java.lang.String) System.out.println(strClass.getSimpleName());//String Class<? extends String[]> strArrayClass = new String[]{}.getClass(); System.out.println(strArrayClass.getName()); / int[] i=new int[]{}; Class<? extends int[]> newI = i.getClass(); System.out.println(newI.getSimpleName()); System.out.println(newI.getName());
方式三:
使用Class.forName
try { Class<?> cl = Class.forName("java.lang.String"); System.out.println("......."+cl.getName()); System.out.println( cl.getPackage()); System.out.println(cl.getSuperclass()); } catch (ClassNotFoundException e) { e.printStackTrace(); }