本帖最后由 当我遇上你 于 2015-1-14 23:01 编辑
- package Test;
- import java.lang.reflect.Method;
- import java.util.Scanner;
- import java.util.jar.Attributes.Name;
- /*编写一个类A,增加一个实力方法showString,
- * 用于打印一条字符串,在编写一个类TestA ,作为客户端,
- * 用键盘输入一个字符串,该字符串就是类A的全名,
- * 使用反射机制创建该类的对象,并调用该对象中的方法showString */
- public class Test4 {
- public static void main(String[] args) throws Exception {
- Scanner scanner = new Scanner("Test.DemoTest");
- String str = scanner.nextLine();
- String[] str1=str.split("\\.");
- String name=str1[1];
- Class clazz=name.class;
- Object instance = clazz.newInstance();
- Method method = clazz.getMethod("showString", String.class);
- method.invoke(instance, "abc");
- }
- }
- class DemoTest
- {
- public static void showString(String str)
- {
- System.out.println(str);
- }
- }
复制代码
一道关于反射的题目:
编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,作为客户端,用键盘输入一个字符串,该字符串就是类A的全名,使用反射机制创建该类的对象,并调用该对象中的方法showString
以下是我写的代码,但是键盘输入的是String,如何让计算机把它当做类名呢?
|
|