注解和反射

注解

内置注解
  • @Deprecated:过时
  • @SuppressWarnings(参数):抑制警告信息,不发黄代码, 类/方法上
    • all:所有
    • unchecked:告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
元注解

负责注解其它注解

  • @Target:用于描述注解的范围,即被描述的注解可以用在什么地方
  • @Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期 source<class<runtime
  • @Documented:说明该注解将被包含在javadoc中
  • @Inherited:说明子类可以继承父类中的注解
自定义注解
定义
@Target({ElementType.METHOD, ElementType.TYPE})//mehtod:方法上有效,type:类上有效
@Inherited//子类可以继承父类中的注解
@Retention(RetentionPolicy.RUNTIME)//Retention 表示注解在什么时候才有效,runtime(运行时)>class(class文件)>source(源码)
@Documented//Documentd 表示是否将我们的注解生成在java doc中
public @interface MyAnnotation {
    //参数类型+参数名()
    String name() default "";

    int age() default 0;

    int id() default -1;//如果默认值为-1,代表不存在

    String[] schools() default {"清华", "北大"};
}
使用
class Test {
    @MyAnnotation(age = 18, name = "zs")//参数不考虑顺序
    public void test() {

    }
}

反射

反射机制

允许程序在执行期借助Reflection api取得任何类的内部信息,并能操作任意对象的内部属性及方法

  • 正常方式:引入需要的"包类"名称-》new 实例化-》取得实例化对象
  • 反射:实例化对象-》getClass()方法-》取得完整的"包类"名称
Class类
  • Class cla=类.class

  • 对象.getClass()

  • Class.forName(全限定类名)

posted @   jpy  阅读(6)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示