Java反射一:反射的概念及获取反射的来源C++、Java、C#都不是动态语言,但JAVA有一个非常突出的动态相关机制:反射。JAVA反射机制处于运行状态,对于任何一个类,你都可以知道这个类的所有属性和方法;对于任何对象,您都可以调用它的任何方法和属性;这种动态信息和动态调用对象方法的功能,称为java语言的反射机制。如:/***入门级示例:通过object获取包名。类名*@authorAdministrator*/publicclassSimple{publicstaticvoidmain(String[]args){Simples=newSimple();System.out.println(s.getClass().getName());}}Java反射机制可以实现如下功能:①在运行时判断任意对象的类;②在运行时构造一个任意类的对象;在运行时判断任何类的成员变量和方法;④运行时调用任意对象的方法;⑤生成动态代理。相关api为【外链图片传输失败,源站可能有防盗链机制,建议保存图片直接上传(img-mWvKvsKd-1597755624260)(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQA)获取源类开放权限:add.setAccessible(true);所有类的对象实际上都是Class的实例。这个Class实例可以理解为类的模型,里面包含了类的结构信息,类似于绘图。在我们的日常生活中,我们需要创造一种产品。如果我们想复制一部iPhone,我们应该怎么做?可以通过三种方式实现:⑴买一部iPhone,拆成碎片,开始山寨;⑵参观iphone工厂,拿到iphone模具,开始临摹;⑶去美国偷iPhone蓝图,开始抄,最后一个最暴力最酷。序列化:实现可序列化接口反序列化克隆:实现可克隆接口,重写clone()方法,修改权限为publicNewReflection同理,获取类的类对象也有三种方式:①Class.forName("包名.classname")//通常尝试使用这种形式②Class.class③Object.getClass()例子如下:publicclassSource{publicstaticvoidmain(String[]args){//第一个方法:object.classSources=新源();类>c1=s.getClass();//第二种方法:class.classClass>c2=Source.class;//第三种方法(推荐):Class.forName()类>c3=null;尝试{c3=Class.forName("com.shsxt.ref.simple.Source");}catch(ClassNotFoundExceptione){e.printStackTrace();系统输出。println(c1.getName());System.out.println(c2.getName());System.out.println(c3.getName());}}有了类对象,我们就万事俱备了,这就是反射的源头接下来就是“炮顶姐牛”了。out.println(c2.getName());System.out.println(c3.getName());}}有了类对象,我们就万事俱备了,这就是反射的来源,接下来就是“**跑定解牛**”。**PS:获取学习资源和技术干货:lezijie007(密码66)**
