请扮演java高级面试官,模拟出一场java高级面试、问题,在扮演java面试人员来回答此问题
时间: 2023-10-20 13:20:09 浏览: 105
好的,以下是一道Java高级面试题:
问题:请问Java中的反射机制是什么?它的作用是什么?请举例说明。
答案:Java中的反射机制是指在程序运行时动态地获取类信息、调用方法和访问属性的一种机制,它可以在不知道类名的情况下,通过运行时的类信息来获取类的信息,并且可以动态地创建对象、调用方法和访问属性。Java反射机制的作用包括但不限于:动态加载类、动态调用方法、动态修改属性、生成代理对象等。下面是一个简单的反射示例:
```java
// 定义一个类
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + this.name);
}
}
// 动态创建对象并调用方法
Class clazz = Class.forName("Person"); // 获取类对象
Constructor constructor = clazz.getConstructor(String.class, int.class); // 获取构造方法
Object person = constructor.newInstance("Tom", 18); // 动态创建对象
Method method = clazz.getDeclaredMethod("sayHello"); // 获取方法
method.invoke(person); // 调用方法
```
这段代码中,我们通过反射机制获取了一个类的信息,并且动态地创建了一个对象和调用了一个方法。
阅读全文