注解和反射

java的注解和反射 Annotation (注解) Reflection(反射)

1、注解 @开头的 Annotation

内置注解 元注解 自定义注解

@Override 重写
@Deprecated 过时的,不推荐的(告诉你这个方法存在更好的方式)
@SuppressWarning("all") 镇压警告,就是将警告镇压

2、反射!!! Reflection reflect

java里什么是反射

在java中,反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。

Java反射机制的主要功能:
1、在运行时判断任意一个对象所属的类;
2、在运行时构造任意一个类的对象;
3、在运行时调用任意一个对象的方法等。

Java反射机制提供的功能

在运行时判断任意一个对象所属的类
在运行时构造任意一个类的对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时获取泛型信息
在运行时调用任意一个对象的成员变量和方法
在运行时处理注解
生成动态代理

Class类

通过反射获得类的class对象
Class.forName("包名") 返回指定类包名的Class对象

在Object类中有一个 public final Class getClass()方法,他被所有子类继承
这个方法返回的类型是一个Class类,他是Java反射的源头。
所谓反射就是:通过对象反射求出类的名称

  • Class本身也是一个类
  • Class对象只能由系统建立对象
  • 一个加载的类在JVM中只会有一个Class实例
  • 一个Class对象对应的是一个加载到JVM中的一个.class文件
  • 每个类的实例都会记得自己是由哪个Class 实例所生成
  • 通过Class可以完整地得到一个类中的所有被加载的结构
  • Class类是Reflection的根源,针对任何你想动态加载、运行的类,唯有先获得相应的Class对象

获取类实例的方法。。。四种方式

  1. 方式一:通过对象获得
    Class c1 = person.getClass();
    System.out.println(c1.hashCode());
  2. 方式二 : forname获得
    Class c2 = class.forName ("com.kuang.reflection.student");
    system.out.println(c2.hashcode() );
  3. 方式三:通过类名.class获得
    Class c3 = student.class;
    System.out.println(c3.hashcode());
  4. 方式四:基本内置类型的包装类都有一个Type属性
    Class c4 = Integer.TYPE;
    System.out.println(c4);
  5. 获得父类类型
    Class c5 = c1.getSuperclass();
    system.out.println( c5);
posted @   没有烦恼的猫猫  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示