千家信息网

Java怎么运用注解

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,本篇内容介绍了"Java怎么运用注解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先来看下概念首先从
千家信息网最后更新 2025年02月24日Java怎么运用注解

本篇内容介绍了"Java怎么运用注解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

先来看下概念首先从注释来看;

注释:给代码添加说明和解释,注释帮助开发人员理解程序。(Comment)说白点就是注释是给人看的。

注解:给代码添加说明解释,这个说明给程序使用。(Annotation)

从 JDK 5.0 开始,Java 增加了对元数据(MetaData) 的支持, 也就是Annotation(注解)。

三个基本的 Annotation:

@Override:限定重写父类方法, 该注解只能用于方法

@Deprecated:用于表示某个程序元素(类, 方法等)已过时

@SuppressWarnings: 抑制编译器警告.

什么是注解

Annotation其实就是代码里的特殊标记, 它用于替代配置文件,也就是说,传统方式通过配置文件告诉类如何运行,有了注解技术后,开发人员可以通过注解告诉类如何运行。在Java技术里注解的典型应用是:可以通过反射技术去得到类里面的注解,以决定怎么去运行类。

注解技术的要点:

如何定义注解

如何反射注解,并根据反射的注解信息,决定如何去运行类

2.1 自定义注解:

定义新的 Annotation 类型使用@interface关键字

声明注解的属性


注解属性的作用:原来写在配置文件中的信息,可以通过注解的属性进行描述。
Annotation的属性声明方式:String name();
属性默认值声明方式:Stringname() default "xxx";
特殊属性value:如果注解中有一个名称value的属性,那么使用注解时可以省略value=部分,如@MyAnnotation("xxx")
特殊属性value[];


注解属性的类型可以是:
String类型
基本数据类型
Class类型
枚举类型
注解类型
以上类型的一维数组

案例演示1 创建和使用注解


public @interface MyAnnocation {
String name();
int num() default 10;
MyAnnocation2 anno();
}
public @interface MyAnnocation2 {
String value();
}

public class Demo1 {
@MyAnnocation(name="哈哈",num=50,anno=@MyAnnocation2(value = "xxx"))
public void show() {
System.out.println("xxxxxxx");
}
}

2.2 JDK的元 Annotation

元 Annotation指修饰Annotation的Annotation。

@Retention: 只能用于修饰一个 Annotation 定义, 用于指定该 Annotation 可以保留的域, @Rentention 包含一个 RetentionPolicy 类型的成员变量, 通过这个变量指定域。


RetentionPolicy.CLASS: 编译器将把注解记录在 class文件中. 当运行 Java 程序时, JVM 不会保留注解. 这是默认值
RetentionPolicy.RUNTIME:编译器将把注解记录在 class文件中. 当运行 Java 程序时, JVM 会保留注解. 程序可以通过反射获取该注释
RetentionPolicy.SOURCE: 编译器直接丢弃这种策略的注释

@Target:指定注解用于修饰类的哪个成员.@Target 包含了一个名为value,类型为ElementType的成员变量。

@Documented:用于指定被该元 Annotation 修饰的Annotation类将被 javadoc 工具提取成文档。

@Inherited:被它修饰的 Annotation 将具有继承性.如果某个类使用了被 @Inherited 修饰的Annotation,则其子类将自动具有该注解。

案例演示2 使用反射获取注解信息


@Retention(RetentionPolicy.RUNTIME)
public @interface PersonInfo {
String name();
int age() default 20;
String gender();
}

public class PersonOpe {
@PersonInfo(name="李四",age=20,gender="男")
public void show(String name,int age,String gen) {
System.out.println(name);
System.out.println(age);
System.out.println(gen);
}
}
public class Demo2 {
public static void main(String[] args) throws Exception{
PersonOpe ope=new PersonOpe();
Class class1=PersonOpe.class;
Method method = class1.getMethod("show", String.class,int.class,String.class);
PersonInfo annotation = method.getAnnotation(PersonInfo.class);
String name=annotation.name();
int age=annotation.age();
String gender=annotation.gender();
method.invoke(ope, name,age,gender);

}
}

"Java怎么运用注解"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

注解 类型 属性 注释 程序 运行 文件 反射 可以通过 技术 编译器 编译 特殊 代码 信息 变量 成员 方式 方法 案例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 inbit服务器 辽宁高清视频会议服务器虚拟主机 程序设计与网络技术 数据库和vc怎么安装软件 fifa online3数据库 为什么打电话显示未连接服务器 特岗教师的服务器为 医保数据库动态维护的申请权限 软件开发总包协议 应急管理系统用什么软件开发 网络安全与支付系统第一节 网络安全维护哪些利益与权益 如何用啊里云服务器 网络安全防护水平报告 在哪里可以看网络安全大赛 长宁区参考数据库销售收费标准 微服务抽离公共数据库配置 工会网络安全宣传内容 网络安全法中对个人信息的界定 软件开发后续费用 资本化 网络安全教育的活动启发 青岛移动软件开发工程师 人大金仓数据库统一系统 宝鸡软件开发销售电话 十四五规划数字经济网络安全 重庆高科技软件开发诚信合作 我的世界1.6服务器 惠州九合网络技术有限公司 东莞聊天软件开发编程 我的世界服务器ip地址离线
0