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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 金逗逗 于 2015-8-9 21:07 编辑

用jdk1.4编译下面的代码不会出现一下的警告提示,但是1.5以上就会出现,警告提示。可以根据提示抑制警告。

  1. import java.lang.reflect.*;
  2. class Person
  3. {
  4.         private String name;
  5.         private int age;
  6.         private double score;
  7.         Person(String name,int age,double score){
  8.                 this.name=name;
  9.                 this.age=age;
  10.                 this.score=score;
  11.         }
  12.         public String toString(){
  13.                 return name+"...."+age+"::"+score;
  14.         }
  15.         public void show(){
  16.                 System.out.println(name+"show");
  17.         }
  18. }
  19. class ReflectDemo
  20. {
  21.         public static void main(String[] args) throws Exception
  22.         {
  23.                 String className="Person";
  24.                 method(className);        
  25.         }        
  26.         public static void method(String className) throws Exception{
  27.                 //想要调用方法必须先有对象,当然静态方法无需
  28.                 Constructor con=Class.forName(className).getDeclaredConstructor(String.class,int.class,double.class);
  29.                 Person p=(Person)con.newInstance("黑马",34,120);
  30.                // Method method=Person.class.getMethod("show",null);这里不能传null,会出现警告
  31.                 Method method=p.getClass().getDeclaredMethod("show",new Class[0]);//这时候不会出现警告
  32.                 //method.invoke(p,null);
  33.                 method.invoke(p,new Object[0]);
  34.         }

复制代码

1 个回复

倒序浏览
本帖最后由 金逗逗 于 2015-8-9 21:07 编辑

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