编写几个类 (例如Cat,Dog等),然后从键盘输入类名和方法名,程序使用反射机制自动创建该类的对象并调用相应方法。
时间: 2024-03-07 11:49:55 浏览: 64
好的,我可以帮你解答这个问题。
首先,我们需要定义几个类,例如Cat和Dog:
```java
public class Cat {
public void say() {
System.out.println("I'm a cat.");
}
}
public class Dog {
public void say() {
System.out.println("I'm a dog.");
}
}
```
接下来,我们可以编写一个程序,从命令行读取类名和方法名,并使用反射机制创建对象并调用方法:
```java
import java.lang.reflect.*;
public class ReflectTest {
public static void main(String[] args) throws Exception {
// 从命令行读取类名和方法名
String className = args[0];
String methodName = args[1];
// 使用反射机制创建对象并调用方法
Class<?> clazz = Class.forName(className);
Object obj = clazz.newInstance();
Method method = clazz.getDeclaredMethod(methodName);
method.invoke(obj);
}
}
```
我们可以在命令行中输入类名和方法名来运行程序,例如:
```
java ReflectTest Cat say
```
这将会创建一个Cat对象并调用它的say方法,输出"I'm a cat."。
希望这个例子能够帮助你理解如何使用反射机制动态创建对象和调用方法。
阅读全文