获取一个类Class对象的方式有哪些?获取一个类Class对象的方式有哪些?
1 个回答
没觉得一年比一年自由,但确实一年比一年通透。玄差### 获取一个类的 `Class` 对象的方式 在 Java 中,可以通过以下几种方式获取一个类的 `Class` 对象: #### 1. 通过对象的 `getClass()` 方法获取 这是通过一个对象的实例来获取该对象的 `Class` 对象。`getClass()` 方法是 `Object` 类中的方法,所有的 Java 对象都继承了这个方法。 ```java User user = new User(); Class<?> clazz = user.getClass(); ``` #### 2. 通过类的静态成员 `class` 获取 每个类都有一个隐含的静态成员 `class`,可以直接通过类名来获取该类的 `Class` 对象。 ```java Class<?> clazz = User.class; ``` #### 3. 通过 `Class` 类的静态方法 `forName()` 获取 通过 `Class` 类的静态方法 `forName(String className)` 来获取类的 `Class` 对象。这种方式需要提供类的全限定名(包括包名)。 ```java Class<?> clazz = Class.forName("com.example.User"); ``` ### 示例代码 ```java public class Test { public static void main(String[] args) { // 方式一:通过对象的 getClass() 方法 User user = new User(); Class<?> clazz1 = user.getClass(); System.out.println("Class obtained via getClass(): " + clazz1.getName()); // 方式二:通过类的静态成员 class Class<?> clazz2 = User.class; System.out.println("Class obtained via .class: " + clazz2.getName()); // 方式三:通过 Class 类的静态方法 forName() try { Class<?> clazz3 = Class.forName("com.example.User"); System.out.println("Class obtained via forName(): " + clazz3.getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } ``` ### 总结 - **通过对象的 `getClass()` 方法**:从实例对象获取其类的 `Class` 对象。 - **通过类的静态成员 `class`**:直接通过类名获取其 `Class` 对象。 - **通过 `Class` 类的静态方法 `forName()`**:通过类的全限定名获取 `Class` 对象。 这三种方式各有用途,可以根据具体情况选择合适的方式来获取类的 `Class` 对象。发布于 2024-06-28 13:54 •IP属地 山西举报评论收藏
公众号进入网站体验更佳

