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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑飞 高级黑马   /  2014-10-3 01:21  /  842 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑飞 于 2014-10-25 11:53 编辑
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.lang.reflect.Method;

  4. public class SysinReflect {
  5.         /**
  6.          * 接收控制台输入的一个类名(这个类事先定义好),通过反射创建这个类的对象并调用里面的方法;
  7.          * @throws Exception
  8.          */
  9.         public static void main(String[] args) throws Exception
  10.         {
  11.                 String classname = "BeReflect";//定义用于比较类名的字符串;
  12.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  13.                 String line = null;
  14.                 System.out.println("InPut A ClassName(exit whit \"end\"):");
  15.                 while((line = br.readLine())!=null)
  16.                 {
  17.                         if(line.equals(classname))
  18.                         {
  19.                                 //进行反射
  20.                                 Class c = Class.forName(line);
  21.                                 Method m = c.getMethod("test", null);
  22.                                 m.invoke(c.newInstance(), null);
  23.                         }else if(line.equalsIgnoreCase("end"))
  24.                         {
  25.                                 System.out.println("exit");
  26.                                 break;
  27.                         }
  28.                         else
  29.                                 System.out.println("ClassNotFound,InPut Again:");
  30.                 }
  31.                 br.close();
  32.         }
  33. }
  34. class BeReflect
  35. {
  36.         public void test()
  37.         {
  38.                 System.out.println("i'm reflect!");
  39.         }
  40. }
复制代码

4 个回复

正序浏览
354620815 发表于 2014-10-3 20:53
知道怎么反射main()主函数?

好像在哪个视频里有的:
                Class clazz = 类名.class;
                Method method = clazz.getMethod("main",String[].class);
                method.invoke(null, (Object)new String[]{字符串参数1,字符串参数2...});
回复 使用道具 举报 1 0
知道怎么反射main()主函数?
回复 使用道具 举报
JerryJava 发表于 2014-10-3 06:11
哥,2am...珍惜身体资源。祝好。

呵呵 一定一定 谢谢
回复 使用道具 举报
哥,2am...珍惜身体资源。祝好。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马