反射

2020-04-24  本文已影响0人  Hao_38b9

反射(Reflection)

可以在运行时加载,使用未知的包,类,方法等等

弥补强类型语言的不足

基于反射创建对象

class A{
    public void hello(){
        System.out.println("hello");
    }
}
public class ReflectStudy {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
        Object object = Class.forName("reflectstudy.A").newInstance();
        Method method = Class.forName("reflectstudy.A").getMethod("hello");
        method.invoke(object);

        Object object2 = A.class.newInstance();
        
        Constructor<A> constructor = A.class.getConstructor();
        Object object3 = constructor.newInstance();
    }
}

反射关键类

Class

获取方式:

Class c = A.class;

Class 可以获取:

上一篇 下一篇

猜你喜欢

热点阅读