java如何获取class
获取Class对象的几种方法
通过Class.forName("全限定类名")获取
传入类的全限定名(包括包路径),适用于已知类名但未加载的情况。例如:
Class<?> clazz = Class.forName("java.lang.String");
通过类名.class获取
直接通过类字面常量获取,适用于编译时已知类的情况。例如:
Class<String> stringClass = String.class;
通过对象.getClass()获取
通过已有对象实例获取其Class对象,适用于运行时获取实例类型。例如:

String str = "example";
Class<? extends String> strClass = str.getClass();
通过类加载器获取
使用ClassLoader.loadClass()方法,适用于需要自定义类加载的场景。例如:
ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class<?> clazz = loader.loadClass("java.util.ArrayList");
注意事项
基本数据类型需使用.TYPE语法
基本类型如int、boolean等需通过包装类的TYPE字段获取。例如:

Class<Integer> intClass = Integer.TYPE;
数组类型的获取方式
数组类型需在类名后添加[]并使用特殊语法。例如:
Class<?> arrayClass = String[].class;
泛型类擦除问题 泛型类型在运行时会被擦除,获取的Class对象不包含泛型信息。例如:
List<String> list = new ArrayList<>();
Class<?> listClass = list.getClass(); // 返回ArrayList的原始类型






