注解和反射
文章平均质量分 54
凯凯凯凯.
这个作者很懒,什么都没留下…
展开
-
【注解与反射八】通过反射获取注解信息
简单使用: import java.lang.annotation.*; import java.lang.reflect.Field; //练习反射操作注解 public class Test06 { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException { Class c1 = Class.forName("注解与反射.Student");原创 2021-06-03 15:28:50 · 63 阅读 · 0 评论 -
【注解与反射七】反射操作泛型
反射操作泛型 Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦出 未 为了通过反射操作这些类型,Java新增了ParameterizedType,GenericArrayType,TypeVaeiable和WildcardType集中类型来代表不能被归一到Class类中的类型但是又和原始类型齐名的类型 ParameterizedType: 表示一种参数化类型,比如Collection原创 2021-06-03 14:49:14 · 67 阅读 · 0 评论 -
【注解与反射六】动态创建对象执行方法
有了Class对象,能做什么? 创建类的对象: 调用Class对象的newInstance()方法 类必须有一个无参构造器 类的构造器的访问权限要足够 //获得Class对象 Class c1 = Class.forName("注解与反射.User"); //构造一个对象 User user = (User) c1.newInstance(); System.out.println(user); 难道没有无参构造器就不能创建对象了吗?只要在操作的时候明确调用类中的构造器,并将参数传递进去之后,原创 2021-06-03 14:21:15 · 121 阅读 · 1 评论 -
【注解与反射五】反射获取运行时类的完整结构
获取运行时类的完整结构 User类在这篇文章中有写到 import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; //获得类的信息 public class Test04 { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException,原创 2021-06-03 10:14:54 · 64 阅读 · 0 评论 -
【注解与反射四】类的加载器
类加载器的作用 **类加载器的作用:**将class文件字节码内容加载到内存中,并将这些静态数据对象转换成方法区的运行时数据结构,然后在堆中生成一个代表这个累的java.lang.Class对象,作为方法区中类数据的访问入口。 **类缓存:**标准的JavaSE类加载器可以按要求查找类,但一旦某各类被加载到类加载器中,它将维持加载(缓存)一段时间。不过JVM垃圾回收机制可以回收这些Class对象 类加载器作用是用来把类(class)装载进内存的。JVM规范定义了如下类型的类的类加载器。 **引导类加原创 2021-06-03 09:03:47 · 63 阅读 · 1 评论 -
【注解与反射三】Class类
Class类 对象照镜子(getClass())后可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个类而言,JRE都为其保留了一个不变的Class类型的对象。一个人Class对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void/[])的有关信息。 Class本身也是一个类 Class对象只能由系统建立对象 一个加载的类在JVM中只会有一个Class实例 一个Class对象对应的是一个加载到JVM中的一原创 2021-06-02 20:29:08 · 98 阅读 · 0 评论 -
【注解与反射二】java的反射机制
反射机制 动态语言VS静态语言 动态语言: 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点讲就是在代码运行时代码可以根据某些条件改变自身结构。 主要动态语言:Object-C、C#、JavaScript、PHP、Python等。 静态语言: 与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。 Java不是动态语言,但Java可以称之为“准动态语言”。即Java有一定的动态性,我们可以利用反射机制转载 2021-06-02 19:30:36 · 76 阅读 · 0 评论 -
【注解与反射一】java的注解机制
一、注解机制 (一)、什么是注解 Annotation是JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序做出解释(这一点和注释没什么区别) 可以被其他程序读取 Annotation的格式: 注解是以“@注解名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”) Annotation在哪里使用? 可以附在package,class,method,field等上面,相当于给他们添加了额外的辅助信原创 2021-06-02 17:05:06 · 64 阅读 · 0 评论