本帖最后由 金逗逗 于 2015-8-9 21:07 编辑
用jdk1.4编译下面的代码不会出现一下的警告提示,但是1.5以上就会出现,警告提示。可以根据提示抑制警告。
- import java.lang.reflect.*;
- class Person
- {
- private String name;
- private int age;
- private double score;
- Person(String name,int age,double score){
- this.name=name;
- this.age=age;
- this.score=score;
- }
- public String toString(){
- return name+"...."+age+"::"+score;
- }
- public void show(){
- System.out.println(name+"show");
- }
- }
- class ReflectDemo
- {
- public static void main(String[] args) throws Exception
- {
- String className="Person";
- method(className);
- }
- public static void method(String className) throws Exception{
- //想要调用方法必须先有对象,当然静态方法无需
- Constructor con=Class.forName(className).getDeclaredConstructor(String.class,int.class,double.class);
- Person p=(Person)con.newInstance("黑马",34,120);
- // Method method=Person.class.getMethod("show",null);这里不能传null,会出现警告
- Method method=p.getClass().getDeclaredMethod("show",new Class[0]);//这时候不会出现警告
- //method.invoke(p,null);
- method.invoke(p,new Object[0]);
- }
- }
复制代码
|
|