当前位置: 首页 > article >正文

java注解-cnblog

需要搭配b站西部开源的课食用

1.1 什么是注解



1.2 普通注解代码

package nb;  
  
import java.util.ArrayList;  
import java.util.List;  
  
public class Test01 {  
    @Override  
//    重写的注释  
    public String toString() {  
        return toString();  
    }  
  
    @Deprecated  
    //Deprecated 不推荐程序员使用,但是可以使用,或者存在更好的方式  
    public static void test() {  
        System.out.println("Deprecated");  
    }  
  
    @SuppressWarnings("all")  
    public void test02() {  
        List list = new ArrayList();  
    }  
  
    public static void main(String[] args) {  
        test();  
    }  
  
}

1.3 元注解代码

package nb;  
  
  
import java.lang.annotation.*;  
  
//测试元注解  
@MyAnnotation  
public class Test02 {  
    public void test() {  
  
    }  
}  
  
//定义一个注解  
@Target(value = {ElementType.METHOD, ElementType.TYPE})  
//Target 表示我们的注解可以用在哪些地方  
@Retention(value = RetentionPolicy.RUNTIME)  
//Retention表明我们的注解在什么地方还有效  
    @Documented  
//Documented表示我们的注解生成在JAVAdoc中  
    @Inherited  
//Inherited子类可以继承父类的继承  
@interface MyAnnotation {  
  
}

1.4 自定义注解

package nb;  
  
import java.lang.annotation.ElementType;  
import java.lang.annotation.Retention;  
import java.lang.annotation.RetentionPolicy;  
import java.lang.annotation.Target;  
  
public class Test03 {  
    //注解可以显示赋值,如果没有默认值,我们就必须给注解赋值  
    @MyAnnotation2(name = "aqin",schools = {"西北大学,西工大"})  
    public void test(){}  
  
    @MyAnnotation3("琴江")  
    public void test1(){  
  
    }  
}  
  
@Target({ElementType.TYPE, ElementType.METHOD}) //可以作用在类和方法上  
@Retention(RetentionPolicy.RUNTIME)  
@interface MyAnnotation2 {  
    String name() default "";//注解的参数:参数类型+参数名,默认参数是空  
    int id() default -1;//默认值为-1,代表不存在  
    String[] schools();  
}  
  
@interface MyAnnotation3{  
    String value();//只有默认值value可以省略  
}

http://www.kler.cn/a/405206.html

相关文章:

  • 从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望
  • WebStorm 安装配置(详细教程)
  • 【Nginx从入门到精通】05-安装部署-虚拟机不能上网简单排错
  • 探索Python编程:从入门到实践的高效指南
  • 小米C++ 面试题及参考答案上(120道面试题覆盖各种类型八股文)
  • Spark RDD 的宽依赖和窄依赖
  • Flutter中sqflite的使用案例
  • 【Vite】如何修改服务器默认端口号5173
  • 【YOLOv8改进[注意力]】引入通道先验卷积注意力CPCA + 含全部代码和详细修改方式
  • C# .net core web 程序远程调试
  • 算法——环形链表(leetcode141)
  • Java 获取本机 IP 地址的方法
  • Flink调优详解:案例解析(第42天)
  • 解决 redis 的 key 出现的序列化 \xac\xed\x00\x05t\x00 乱码问题
  • SSM post接口传递json 报错 HTTP状态 415 - 不支持的媒体类型
  • 一篇文章了解机器学习
  • 01 —— Webpack打包流程及一个例子
  • 2 设计模式原则之里约替换原则
  • 新华三H3CNE网络工程师认证—生成树协议
  • LeetCode:98. 验证二叉搜索树
  • 【Swift】类型标注、类型安全和类型推断
  • 【C++】友元成员
  • 给定一个数查找所在区间或者查找所有重叠区间的算法总结
  • Mac配置maven环境及在IDEA中配置Maven
  • @Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
  • 商用密码产品认证名录说明