注意:以后工作中代码中 不允许出现警告

自定义注解

1:自定义注解并没有发挥它的作用,而Eclipse自带的注解通过反射另外有一套代码,可以发挥它的作用,例如:跟踪代码。。。。。。

2:如果自定义的代码中有属性,

        a,default  有默认值   则在使用注解时,可以不用赋值

         b:没有默认值,属性名为value,使用注解时可以直接赋值

         c:没有默认值,属性名不为value,使用注解时必须属性名=值。

        d:如果注解属性的数据类型为数组类型,赋多个值时必须使用{}括起来;但若只赋一个值,则无需使用{}

package classTwo03;

public @interface Override {

    int a();
}
package classTwo03;

public class Student {

    public String name="xioaming";

    @Override(a=4)
public boolean equals(Object obj) {
return super.equals(obj);
} } @FunctionalInterface
interface Mammal{ void run() ;
}

内置注解

@Override只能用于方法上,不能用于属性,类,非重写方法,注解重写的方法

@Deprecated 注解过时的方法

@ SupperssWarnings("参数")  参数为unused  代表为这个变量没有用到  。

              参数为deprecation:代表使用已被@Deprecated标注的程序元素

              参数为serial  :代表在可序列化的类上缺少serialVersionUID定义

 package Depracated;

 import java.io.Serializable;

 @SuppressWarnings("serial")
public class Test implements Serializable{ public static void main(String[] args) { @SuppressWarnings("unused")
String name; move(new Bike());
move(new Car());
} @Deprecated
public static void move(Bike bike) {
System.out.println("用自行车");
} public static void move(Car car) {
System.out.println("用汽车");
}
} class Bike{ } class Car { }

元注解

1:Target({参数,参数......})参数可以为 ElementType.FIELD  代表这个被修饰的注解只能注解全局变量

                  ElementType.METHOD 代表这个被修饰的注解只能注解方法

                  ElementType.PACKAGE代表这个被修饰的注解只能注解包

                  ElementType.PARAMETER代表这个被修饰的注解只能注解参数

                  ElementType.TYPE代表这个被修饰的注解只能注解类,接口,枚举

2:Retention(参数)参数可以为RetentionPolicy.SOURCE代表这个被修饰的注解,所修饰的东西在源码结束后就没有这个注解了

               RetentionPolicy.CLASS代表这个被修饰的注解,所修饰的东西在字节码结束后就没有这个注解了

               RetentionPolicy. RUNNING代表这个被修饰的注解,所修饰的东西在运行结束后就没有这个注解了

               默认是字节码阶段

3:@Documented 代表这个被修饰的注解可以在生成的文档中显示出来

        Eclipse中文档如何显示:1):首先在src上右键——选择Export——选择java下的javadoc——

                    选择出javadoc.exe(在bin目录下)——yes就可以了

                    这个时候已经生成了文档,我们在java工程中看到

                   2):如何找到java工程的所在文件呢

                      java工程右键——porperties——location后面的那个小图标——就看到啦doc——

                      点击doc——我们看到有一个index.html——点击在网页页面就看到了我们的程序文档

                  在这个文档中就可以看到注解是否显示了出来

4:@Inherited 代表这个被修饰的注解可以被子类同样继承

package Practice;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; @Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface RequestMapping { }
package Practice;

public class Student extends Father {

}

@RequestMapping
class Father{ }

注解工作原理

反射和注解综合

package Practice;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; @Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequestMapping { }
package Practice;

public class Student {

    @RequestMapping
@Deprecated
public void run(int i) { }
public void run() { }
public void eat() { }
}
package Practice;

import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; public class Test { @SuppressWarnings("rawtypes")
public static void main(String[] args) {
Class clazz = Student.class;
try {
Method [] mothods = clazz.getDeclaredMethods();
for (Method method : mothods) {
Annotation [] anns=method.getAnnotations();
for (Annotation ann : anns) {
System.out.println(ann);
}
}
} catch (Exception e) {
e.printStackTrace();
}
} }

java注解注意点的更多相关文章

  1. Java注解

    Java注解其实是代码里的特殊标记,使用其他工具可以对其进行处理.注解是一种元数据,起到了描述.配置的作用,生成文档,所有的注解都隐式地扩展自java.lang.annotation.Annotati ...

  2. 19.Java 注解

    19.Java注解 1.Java内置注解----注解代码 @Deprecated                                    //不推荐使用的过时方法 @Deprecated ...

  3. Java注解入门

    注解的分类   按运行机制分:   源码注解:只在源码中存在,编译后不存在 编译时注解:源码和编译后的class文件都存在(如@Override,@Deprecated,@SuppressWarnin ...

  4. java注解(Annotation)解析

    注解(Annotation)在java中应用非常广泛.它既能帮助我们在编码中减少错误,(比如最常见的Override注解),还可以帮助我们减少各种xml文件的配置,比如定义AOP切面用@AspectJ ...

  5. JAVA 注解的几大作用及使用方法详解

    JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...

  6. attilax.java 注解的本质and 使用最佳实践(3)O7

    attilax.java 注解的本质and 使用最佳实践(3)O7 1. 定义pojo 1 2. 建立注解By eclipse tps 1 3. 注解参数的可支持数据类型: 2 4. 注解处理器 2 ...

  7. paip.java 注解的详细使用代码

    paip.java 注解的详细使用代码 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

  8. JAVA 注解的几大作用及使用方法详解【转】

    java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...

  9. 框架基础——全面解析Java注解

    为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码: 2. 让编程更加简洁,代码更加清晰: 3. 让别人高看一眼. spring.mybati ...

  10. Java注解配置

    Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用.包含在 java.lang.annota ...

随机推荐

  1. AttributeError: module ‘select’ has no attribute 'epoll’

    场景:mac 下导入的 ‘select’ 包 import select,然后在 主函数 中创建的 epoll 对象 epl = select.epoll(),运行报错如下 Traceback (mo ...

  2. Linux里使用rz和sz命令

    lrzsz是一个unix通信套件提供的X,Y,和ZModem文件传输协议,官网:http://freecode.com/projects/lrzsz/ windows 需要向centos服务器上传文件 ...

  3. 区间dp专题练习

    区间dp专题练习 题意 1.Equal Sum Partitions ? 这嘛东西,\(n^2\)自己写去 \[\ \] \[\ \] 2.You Are the One 感觉自己智力被吊打 \(dp ...

  4. Http的状态码及状态码的类型

    Http的状态码以及根据这些状态码分成5种类型 statusCode/100 /* * Copyright 2002-2013 the original author or authors. * * ...

  5. 【mybatis源码学习】缓存机制

    一.mybatis的缓存 一级缓存:sqlsession级别,默认开启(一个事务内有效)二级缓存:  sqlsessionFactory级别,需要手动开启,在xml配置cache节点(依赖事务的执行结 ...

  6. kotlin基础 字符串模板

    ${变量名} var tmp="字符串模板” print("今天学习${tmp}这个知识点")

  7. avformat_open_input阻塞操作中断的支持

    avformat_open_input默认是阻塞操作,如果不加控制,等待时间可能会达到30s以上,对于有些情况,等待30s的体验是无法接受的. ffmpeg支持interrupt_callback机制 ...

  8. LeetCode 108. Convert Sorted Array to Binary Search Tree (将有序数组转换成BST)

    108. Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascendin ...

  9. (原)使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究

    使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究 Author:lihaiping1603@aliyun.com Create:2019-09-04 最近对ffmpeg给视频文件添加字幕效果 ...

  10. eclipse Maven Dependencies pom

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...