MST

星途 面试题库

面试题:Java反射机制中获取类的方法有哪些常见方式

在Java反射机制里,要求至少列举出3种获取一个类的方式,并简单说明每种方式的适用场景。
11.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 通过类的全限定名使用Class.forName()方法
    • 示例代码Class<?> clazz = Class.forName("com.example.MyClass");
    • 适用场景:当你只知道类的全限定名(包名 + 类名),并且需要在运行时动态加载类。常用于配置文件中指定类名,根据配置来加载不同的类,如数据库驱动的加载(Class.forName("com.mysql.cj.jdbc.Driver");)。
  2. 使用类的.class语法
    • 示例代码Class<MyClass> clazz = MyClass.class;
    • 适用场景:在编译期就已经明确知道要获取的类,常用于获取当前类的相关信息,或者获取常量类、工具类等在代码中经常使用到的类的信息。这种方式简单直接,而且性能较高,因为类在编译时就已经确定。
  3. 通过对象的getClass()方法
    • 示例代码
MyClass obj = new MyClass();
Class<? extends MyClass> clazz = obj.getClass();
- **适用场景**:当你已经有一个对象实例,需要获取该对象实际类型的`Class`对象。常用于运行时根据对象的实际类型进行一些动态操作,比如在多态情况下,判断对象具体属于哪个类,进而执行不同的逻辑。