java的注解基础入门

1.常用的注解

@overrive继承//继承的方法时建议都添加该注解,防止我们不是重写方法

@deprecated  废弃的方法

@suppresswarning  警告信息,属性值all表示所有的意思

2.元注解

@target描述注解使用的范围

说明

@target(value=ElementType.值)

属性值:

Package  使用范围包

Type     使用范围类接口枚举annotation类型

Constructor   使用范围构造器

Field   使用范围属性

Method  使用范围方法

Local_VARIABLE 用于局部变量

Parameter 用于描述参数

@retention 描述注解作用的时机

@retention(RetentionPolicy.值)

Source  注解将被编译器丢弃

Class  注解在class文件中可用,但会被VM丢弃

Runtime VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息//需要反射获取某些注解的信息必须添加信息

3.创建注解

public class AnnotationDemo {
    public static void main(String[] args) {
        AnnotationDemoTest1 annotationDemo1 = new AnnotationDemoTest1();
        Class<? extends AnnotationDemoTest1> class1 = annotationDemo1.getClass();
        if (class1.isAnnotationPresent(ReflectAnnotationdemo1.class)) {
            ReflectAnnotationdemo1 annotation = class1.getAnnotation(ReflectAnnotationdemo1.class);
            System.out.println(annotation.value());
        }
    }
}

// RetentionPolicy 枚举 RetentionPolicy.RUNTIME 运行时起作用 这样才能反射
@Retention(RetentionPolicy.RUNTIME)
// ElementType 枚举 ElementType.TYPE 修饰于类,接口,枚举,注解
@Target(ElementType.TYPE)
@interface ReflectAnnotationdemo1 {
    // String test()
    // value可以省略 value= ,省略的前提是只有value一个属性
    String value();
}

@ReflectAnnotationdemo1("111")
class AnnotationDemoTest1 {

}
public class AnnotationDemo2 {
    public static void main(String[] args) {
        AnnotationDemoTest2 annotationDemo1 = new AnnotationDemoTest2();
        Class<? extends AnnotationDemoTest2> class1 = annotationDemo1.getClass();
        if (class1.isAnnotationPresent(ReflectAnnotationdemo2.class)) {
            ReflectAnnotationdemo2 annotation = class1.getAnnotation(ReflectAnnotationdemo2.class);
            System.out.println(annotation.test());
            System.out.println(annotation.test1()[0]);
        }
    }
}

@Retention(RetentionPolicy.RUNTIME)
@interface ReflectAnnotationdemo2 {
    //设置默认的值
    String  test() default "111";
    int [] test1() default {1,2};

}

@ReflectAnnotationdemo2
class AnnotationDemoTest2 {

}
public class AnnotationDemo3 {
    public static void main(String[] args) {
        AnnotationDemoTest3 annotationDemo1 = new AnnotationDemoTest3();
        Class<? extends AnnotationDemoTest3> class1 = annotationDemo1.getClass();
        if (class1.isAnnotationPresent(ReflectAnnotationdemo3.class)) {
            ReflectAnnotationdemo3 annotation = class1.getAnnotation(ReflectAnnotationdemo3.class);
            System.out.println(annotation.test());
            System.out.println(annotation.test1()[0]);
        }
    }
}

@Retention(RetentionPolicy.RUNTIME)
@interface ReflectAnnotationdemo3 {
    //设置默认的值
    String  test() default "111";
    int [] test1() default {1,2};

}

@ReflectAnnotationdemo3(test="222",test1={4,5})
class AnnotationDemoTest3 {

}

原文地址:https://www.cnblogs.com/gg128/p/9311301.html

时间: 2024-08-24 12:28:20

java的注解基础入门的相关文章

java注解基础入门

前言 这篇博客主要是对java注解相关的知识进行入门级的讲解,包括**,核心内容主要体现在对java注解的理解以及如何使用.希望通过写这篇博客的过程中让自己对java注解有更深入的理解,在工作中可以巧妙的使用注解,完善自己对基础知识的理解和使用. 目录 1.注解概述 2.注解作用 3.java常见的注解 4.如何自定义注解       5.元注解       6.注解反射 1.注解的概述 注解,告诉编译器如何运行程序! 2.注解的作用 1)告诉编译器如何运行程序:         2)跟踪代码依

java的反射基础入门

1.获取反射Class类的方式 Class.forName("全类名"): 类名.class//需要在JVM已加载的前提下 对象.getClass 2.java对javabean进行操作的四种方式 public class Descriptor { public static void main(String[] args) throws Exception { // 方式1 PropertyDescriptor descriptor = new PropertyDescriptor(

Java 之 Servlet 基础入门

Servlet 一.什么是 Servlet 1.概念 Servlet:server applet,是指运行在服务器端的小程序 2.Servlet   servlet 就是一个接口,定义了 Java 类被浏览器访问到(tomcat识别)的规则.   二.Servlet 执行原理 1.入门案例 (1)创建 JavaEE 项目 (2)定义一个类,实现 Servlet 接口 public class ServletDemo1 implements Servlet (3)实现接口中的抽象方法 1 impo

java的泛型基础入门

1.泛型的作用 防止随意的放置任何的对象,使用泛型后只能按我们使用时指定的类型添加以及会相应的进行编译时检查,在编译检查后会去除相应的泛型信息(运行时没有这个信息了),在类型转换的也会自动的相应的转换为相应的信息 public class GenenricyDemo1 { public static <T> T test1(T t){ return t; } public <T> T test2(T t){ return t; } public static void main(S

java网络爬虫基础学习(一)

刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结 主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好. 一.爬虫介绍 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网下载网页,是搜索引擎的重要组成部分. 传统爬虫: 获得URL ->放入队列 ->抓取网页,分析信息 ->新的URL ->放入队列 ->抓取网页,分析信息... ->满足一定条件,停止. 聚焦爬虫: 根据一定的网页分析算法过滤与主题无关的链接

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注

深入理解Java:注解(Annotation)自己定义注解入门

深入理解Java:注解(Annotation)自己定义注解入门 要深入学习注解.我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前.我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其它注解. Java5.0定义了4个标准的meta-annotation类型.它们被用来提供对其它 annotation类型作说明.Java5.0定义的元注解: [email protected], [email protected], [email pro

[2]注解(Annotation)-- 深入理解Java:注解(Annotation)自定义注解入门

转载 http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 深入理解Java:注解(Annotation)自定义注解入门 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其他注解.Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明.J

(转载)深入理解Java:注解(Annotation)自定义注解入门

深入理解Java:注解(Annotation)自定义注解入门 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其他注解.Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明.Java5.0定义的元注解: [email protected], [email protected], [email prote