JAVA基础 –反射编写写法

测试类:

package com.xdw.ref;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class RefTest {

    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
        //-------反射第一种方法-------//
        Class clazz = Class.forName("com.xdw.ref.RefBasic");
        System.out.println(clazz.getName());
        RefBasic refBasic = (RefBasic) clazz.getDeclaredConstructor().newInstance();
        refBasic.sayName();


        //----------第二种写法-------------//
        RefBasic RefBasic = new RefBasic();
        Class clazz1 = RefBasic.getClass();
        RefBasic refBasic1 = (RefBasic) clazz1.getDeclaredConstructor(int.class).newInstance(2);
        refBasic1.sayName();

        //-------------反射方法-----------------//
        RefBasic RefBasic3 = new RefBasic();
        Class clazz3 = RefBasic3.getClass();
        RefBasic refBasic3 = (RefBasic) clazz3.getDeclaredConstructor(int.class).newInstance(3);
        Method method =clazz3.getMethod("sayName");
        Method method2 =clazz3.getMethod("sayName1",int.class);
        method.invoke(refBasic3);
        method2.invoke(refBasic3,4);
//        RefBasic refBasic2 = (RefBasic) clazz1.getDeclaredConstructor(int.class).newInstance(2);
    }
}

辅助类

public class RefBasic {



    public int a =1;

    public RefBasic(int a){
        this.a = a;
    }

    public RefBasic() {

    }

    public void sayName(){
        System.out.println(a);
    }

    public void sayName1(int b){
        System.out.println(b);
    }

}


版权声明:本文为happyming886原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>