在 Java 中,获取 Class 对象(类对象)常见有 5 种方式,不同场景用不同的方法。下面按最常用 → 不常用给你总结。
.class(编译期已知类)Class<?> clazz = String.class;
✅ 优点:
✅ 适合:
getClass()(已有对象)String s = "hello";
Class<?> clazz = s.getClass();
✅ 适合:
⚠️ 注意:
int 不行)Class.forName()Class<?> clazz = Class.forName("java.lang.String");
✅ 优点:
⚠️ 会抛异常:
ClassNotFoundException✅ 适合:
Class<?> intClass = int.class;
Class<?> voidClass = void.class;
❗ 不能用 Class.forName("int")
Class<?> arrClass = int[].class;
Class<?> strArrClass = String[].class;
| 方式 | 示例 | 是否常用 | 是否抛异常 |
|---|---|---|---|
.class |
String.class |
✅✅✅ | ❌ |
getClass() |
obj.getClass() |
✅✅ | ❌ |
forName() |
Class.forName(...) |
✅✅✅ | ✅ |
| 基本类型 | int.class |
✅ | ❌ |
| 数组 | int[].class |
✅ | ❌ |
Class.forName("String"); // 错,必须是全类名
Class.forName("java.lang.string"); // 大小写敏感
如果你是想 用 Class 做什么(反射、 newInstance、注解、泛型),可以告诉我,我可以给你更针对性的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。