ToB企服应用市场:ToB评测及商务社交产业平台

标题: 2022-8-10 JAVA的反射机制 [打印本页]

作者: 大连全瓷种植牙齿制作中心    时间: 2022-9-16 17:14
标题: 2022-8-10 JAVA的反射机制
反射机制

AVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制在框架设计中极为广泛,需要深入理解。
反射基础

RTTI(Run-Time Type Identification)运行时类型识别,其作用是在运行时识别一个对象的类型和类的信息。
反射就是把java类中的各种成分映射成一个个的Java对象
例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。
反射的使用

TIP
基于此我们如何通过反射获取Class类对象以及类中的成员变量、方法、构造方法等


输出的结果




注解和反射
  1. *  注解:Annotation,Java标注,JDK5引入的一种机制。
  2. *  Java中类,方法,变量,参数,包都可以被标注
  3. *
  4. *  元注解:专门给注解加的注解
复制代码
我们发现注解中可以有方法,
  1. *  1、定义方法的格式:String name();
  2. *  2、可以有默认值,也可以没有,如果没有默认值在使用的时候必须填写对应的值
  3. *      如果需要有默认值,使用default指定默认值。
  4. *  3、如果想在使用的时候不指定具体的名字,
  5. *
  6. *  如果不学习反射,注解没啥用!!!
复制代码
在java的整个的注解体系中,有3个非常重要的主干类,
  1. *  1、Annotation 接口,定义一些常用的方法
  2. *  2、ElementType 枚举
  3. *      它用来指定注解的类型。说人话,我的注解要用在哪里???
  4. *  3、RetentionPolicy 枚举
  5. *      它用来指定注解的策略。不同类型的策略指定的注解的作用域不同。
  6. *     (1)SOURCE,注解仅存在于编译器处理期间,编译期处理完之后,这个注解就没用了
  7. *     (2)CLASS,注解在.class文件中依然有效。
  8. *     (3)RUNTIME,编译期是不起作用的,只有在运行期才由JVM读取。
复制代码
Java自带的注解

10个。4个注解java.lang.annotation
6个注解在java.lang
作用在代码上的注解
元注解:




  1. package com.jsoft.morning;
  2. @Bean
  3. public class Dog {
  4. public String type;
  5. private String name;
  6. private String color;
  7. public Dog() {
  8. }
  9. private Dog(String name){
  10.     this.name = name;
  11. }
  12. public Dog(String name, String color) {
  13.     this.name = name;
  14.     this.color = color;
  15. }
  16. public String getType() {
  17.     return type;
  18. }
  19. public void setType(String type) {
  20.     this.type = type;
  21. }
  22. public String getName() {
  23.     return name;
  24. }
  25. public void setName(String name) {
  26.     this.name = name;
  27. }
  28. public String getColor() {
  29.     return color;
  30. }
  31. public void setColor(String color) {
  32.     this.color = color;
  33. }
  34. @MyAnnotation(value = 20,age=10)
  35. public void show(String str) {
  36.     System.out.println("show方法..." + str);
  37. }
  38. public String info() {
  39.     return "info方法";
  40. }
  41. private void fun() {
  42.     System.out.println("私有的fun方法...");
  43. }
复制代码
}




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4