本帖最后由 周峰峰 于 2014-12-22 21:49 编辑
import java.io.*;
import java.lang.reflect.*;
import java.util.Scanner;
public class test2 {
/**
* 编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,作为客户端,
* 用键盘输入一个字符串,该字符串就是类A的全名,使用反射机制创建该类的对象,并调用该对象中的方法showString
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
//实现键盘输入(字符串是类A的全名)
Scanner sn = new Scanner(System.in);
String classname = sn.next();
//获取指定类的字节码文件对象
Class clazz = Class.forName(classname);
//获取指定类里面的showString方法
Method method = clazz.getMethod("showString", String.class);
//获取指定类的对象
Object obj = clazz.newInstance();
//执行获取到的showString方法
method.invoke(obj, classname);
}
}
//定义一个类A,增加一个实力方法showString
class A {
public static void showString(String str) {
System.out.println(str);
}
}
题目中的“改字符串就是类A的全名”,应该是“该字符串就是类A的全名。
|