注解和反射
注解
内置注解
- @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(全限定类名)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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