首页 > 代码库 > 反射类加载
反射类加载
java中的反射技术:运行时探究和使用编译时未知的类。
反射的核心原理:JVM在加载一个类的时候,会把该类的信息存放到一个Class对象中,该对象又被称为模板对象,JVM可以通过检索对象得到这个类的所有信息。
JDK提供API,允许程序员获取到类的Class对象,导致程序员也可以检索到这个类的信息, 即使这个类不是程序或程序员所实现的。
获取Class对象又3种方法。
1,通过类型名取Class对象,所有的类型都可以获得Class对象,这种方式没有动态性,以为在编译时已知类型名。
2,通过对象或实例对象获取Class对象(只能是非抽象类和数组类型),抽象类,接口,void,基本数据类型都不可以,以为在编写代码时已得到实例对象,所以也没有动态性。
3,通过类全名的字符串形式获得Class对象(它只接受类和接口),这是唯一的一种动态体现。(注意:必须填写类全名,先完成主动加载,然后返回Class对象)
通过Filed可以探究属性,constructor可以探究到构造,Method可以探究到方法。
探究到Constructor可以产生实例对象,使用newInstance方法可以的到对象。
探究到Method就可以通过invoke方法调用方法。
探究到Filed就可以通过get和set方法对属性赋值和修改。
反射是java中第三种产生对象的方法,产生对象时只能调用公共无参构造。私有属性在反射中操作都是调用它的get,set方法。反射是java的底层实现,它其实是破坏了封装。
反射类加载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。