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 版权协议,转载请附上原文出处链接和本声明。