A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 当我遇上你 中级黑马   /  2015-1-14 22:33  /  738 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 当我遇上你 于 2015-1-14 23:01 编辑
  1. package Test;

  2. import java.lang.reflect.Method;
  3. import java.util.Scanner;
  4. import java.util.jar.Attributes.Name;

  5. /*编写一个类A,增加一个实力方法showString,
  6. * 用于打印一条字符串,在编写一个类TestA ,作为客户端,
  7. * 用键盘输入一个字符串,该字符串就是类A的全名,
  8. * 使用反射机制创建该类的对象,并调用该对象中的方法showString */

  9. public class Test4 {

  10.         public static void main(String[] args) throws Exception {
  11.                 Scanner scanner = new Scanner("Test.DemoTest");
  12.                 String str = scanner.nextLine();
  13.                 String[] str1=str.split("\\.");
  14.                 String name=str1[1];
  15.                 Class clazz=name.class;
  16.                 Object instance = clazz.newInstance();
  17.                 Method method = clazz.getMethod("showString", String.class);
  18.                 method.invoke(instance, "abc");
  19.         }

  20. }
  21. class DemoTest
  22. {
  23.         public static void showString(String str)
  24.         {
  25.                 System.out.println(str);
  26.         }
  27. }
复制代码

一道关于反射的题目:
编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,作为客户端,用键盘输入一个字符串,该字符串就是类A的全名,使用反射机制创建该类的对象,并调用该对象中的方法showString
以下是我写的代码,但是键盘输入的是String,如何让计算机把它当做类名呢?





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马