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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 任我行 于 2015-1-8 10:47 编辑
  1. package com.itheima.test;
  2. import java.lang.reflect.Constructor;
  3. import java.lang.reflect.Method;

  4. public class Test2
  5. {
  6.         /**
  7.          * 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。##
  8.          */
  9.         
  10.         public static void main(String[] args) throws Exception
  11.         {
  12.                 //方式一
  13.                  Class<?> class1 = Class.forName("com.itheima.test.Demo");
  14.                  Constructor<?> con =class1.getConstructor();
  15.                  Demo demo  = (Demo)con.newInstance();
  16.                  Method method = class1.geMethod("show");
  17.                  method.invoke(demo);
  18.                  //方式二
  19.                  Class<?>class2 = Class.forName("com.itheima.test.Demo");
  20.                  Method method1 =class2.getMethod("show");
  21.                  method1.invoke(null);
  22.         }
  23. }

  24. //实体类
  25. package com.itheima.test;
  26. public  class Demo
  27. {
  28.                 public static void  show()
  29.                 {
  30.                         System.out.println("反射調用該方法");
  31.                 }
  32. }
复制代码


3 个回复

倒序浏览
类型不同啊
回复 使用道具 举报
getDeclaredMethod可以获得private方法。 getMethod只能获取类的公有方法。
回复 使用道具 举报

代码有点误解,我想问的是下面这两种方式有什么区别

  1.         public static void main(String[] args) throws Exception
  2.         {
  3.                 //方式一
  4.                  Class<?> class1 = Class.forName("com.itheima.test.Demo");
  5.                  Constructor<?> con =class1.getConstructor();
  6.                  Demo demo  = (Demo)con.newInstance();
  7.                  Method method = class1.getMethod("show");
  8.                  method.invoke(demo);
  9.                  
  10.                  //方式二
  11.                  Class<?>class2 = Class.forName("com.itheima.test.Demo");
  12.                  Method method1 =class2.getMethod("show");
  13.                  method1.invoke(null);
  14.                  
  15.         }
复制代码

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马