文档章节

注解学习day_1

肥猫钓鱼
 肥猫钓鱼
发布于 2014/11/18 09:57
字数 605
阅读 7
收藏 0
点赞 0
评论 0

注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。

参考http://www.cnblogs.com/linjiqin/archive/2011/02/16/1956426.html学习时候写的demo //Java中提供了四种元注解,专门负责注解其他的注解,分别如下 //@Retention元注解,表示需要在什么级别保存该注释信息(生命周期)。可选的RetentionPoicy参数包括: //RetentionPolicy.SOURCE: 停留在java源文件,被编译器丢掉 //RetentionPolicy.CLASS:停留在class文件中,但会被VM丢弃(默认) /RetentionPolicy.RUNTIME:内存中的字节码,VM将在运行时也保留注解,因此可以通过反射机制读取注解的信息

//@Target元注解,默认值为任何元素,表示该注解用于什么地方。可用的ElementType参数包括 //ElementType.CONSTRUCTOR: 构造器声明 //ElementType.FIELD: 成员变量、对象、属性(包括enum实例) //ElementType.LOCAL_VARIABLE: 局部变量声明 //ElementType.METHOD: 方法声明 //ElementType.PACKAGE: 包声明 //ElementType.PARAMETER: 参数声明 //ElementType.TYPE: 类、接口(包括注解类型)或enum声明

//@Documented将注解包含在JavaDoc中

//@Inheried允许子类继承父类中的注解

package test.annotations;

import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;

import test.enums.Gender; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD,ElementType.TYPE}) public @interface MyAnnotation { //为注解添加属性 String color(); //为属性添加默认值 String value() default "我是注解"; // int[] array() default {1,2,3,4};

//添加一个枚举类型
Gender gender() default Gender.MAN;

//添加一个注解类型
MetaAnnotation metaAnnotation() default @MetaAnnotation(brithday="2014年5-5");

}

//一个简单注解 package test.annotations;

public @interface MetaAnnotation { String brithday(); }

//一个简单枚举 package test.enums;

public enum Gender { MAN{ public String getName(){ return "男"; } }, WOMEN{ public String getName(){ return "女"; } }; public abstract String getName(); }

//然后测试 package test.app;

import test.annotations.MetaAnnotation; import test.annotations.MyAnnotation; import test.enums.Gender;

//调用注解并赋值 @MyAnnotation(color="red",array={1,2,3},gender=Gender.MAN,metaAnnotation=@MetaAnnotation(brithday="2014年5-5")) public class AnnotationApp { public static void main(String[] args){ //检查AnnotationApp类是否有MyAnnotation注解 if(AnnotationApp.class.isAnnotationPresent(MyAnnotation.class)){ //若存在就获取注解 MyAnnotation myAnnotation = AnnotationApp.class.getAnnotation(MyAnnotation.class); System.out.println(myAnnotation); //获得注解的属性 int[] arrs = myAnnotation.array(); for(int arr:arrs){ System.out.println(arr); } System.out.println(myAnnotation.color()); System.out.println(myAnnotation.gender()); //获取注解的注解属性 MetaAnnotation metaAnno = myAnnotation.metaAnnotation(); System.out.println(metaAnno.brithday());

		System.out.println(myAnnotation.value());
	}
}

} 参考:http://www.cnblogs.com/linjiqin/archive/2011/02/16/1956426.html

© 著作权归作者所有

共有 人打赏支持
肥猫钓鱼
粉丝 1
博文 52
码字总数 9287
作品 0
深圳
程序员
新手如何快速打好java基础?

要打好基础,首先要知道学什么,然后有牛的老师带,然后疯狂练习。练习的时候也不能盲目练习,需要有反馈,不断增加难度,这样才能学好。最好全身心投入学习。 下面这份挺全的java基础大纲,...

JAVA大神
2017/12/01
0
0
spring mvc 时间日期转换(@DateTimeFormat 注解)

两种用法示例: 使用 @DateTimeFormat 注解有两种做法,如上面代码所示。 示例说明: 第一种是按照ISO国际标准的日期时间格式解析参数中的日期时间的,具体格式为此枚举变量: 第二种是按照自...

silenceyawen
2017/06/09
102
0
spring-- spring task

有注解和xml两种形式配置spring-task 基于注解方式 1.springmvc.xml配置 2.方法上加注解 备注:类上加上@Component注解可以被扫描到,因此类里面的@Scheduled才能被扫描到;如果类上不加注解...

求是科技
2016/09/09
26
0
VOIP网络基本拓扑结构----基本组网

之前写的几篇文章,很多兄弟喜欢,但是导图的制作,太耗费时间。 现在想改变一种方式,通过纸笔,画图加注解的方式,呈现出来。 也算是属于脑图,但是更加随意,纯手工,呵呵..... 最近会分享...

徐会刚
2015/12/08
0
0
机器学习 人工智能 博文链接汇总

115 [入门问题] [TensorFlow] [深度学习] [好玩儿的算法应用实例] [聊天机器人] [神经网络] [机器学习] [机器学习算法应用实例] [自然语言处理] [数据科学] [Python] [Java] [机器学习--初...

aliceyangxi1987
2017/05/13
0
0
spring boot框架学习之重要注解3注解方式读取外部资源配置文件

本节主要内容: 1:是用非注解方式怎么获取配置文件中的配置项 2:使用注解实战获取外部properties文件配置项 声明: 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中spring boot框...

799879287
2017/10/22
0
0
spring boot框架学习之重要注解3注解方式读取外部资源配置文件

本节主要内容: 1:是用非注解方式怎么获取配置文件中的配置项 2:使用注解实战获取外部properties文件配置项 声明: 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中spring boot框...

凯哥java
2017/10/22
0
0
spring boot框架学习2-spring boot核心(1)

本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 本文是《凯哥陪你学......

799879287
2017/10/26
0
0
spring boot框架学习2-spring boot核心(1)

本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 本文是《凯哥陪你学......

凯哥java
2017/10/27
0
0
spring boot框架学习3-spring boot核心(2)

本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration @ComponentScan @EnableAutoConfiguration 本文是《凯哥陪你学......

凯哥java
2017/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Call to undefined function Workerman\posix_getpid

workerman 在centos下报PHP Fatal error: Call to undefined function Workerman\posix_getpid posix在下面这个包中php-process...

dragon_tech
9分钟前
0
0
mysql 7.4 创建表 时  所建表 字段太多 导致失败

报错:[Err] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. 解决方法:把表的引......

qimh
11分钟前
0
0
语法补漏

1.if...elif...else... 代码示例: test=10 if test>9: print(1) elif test>8: print(2) elif test>7: print(3) else: print('nothing') 输出代码: 1...

十年磨一剑3344
11分钟前
0
0
Python -re模块及正则表达式解析

传送门: https://blog.csdn.net/pipisorry/article/details/25909899 ps:上面文章中"命名分组"的语法格式不能执行。正确的如下: (?P<name>正则表达式) #name是一个合法的标识符 除了使用别名...

一口今心
19分钟前
0
0
mybatis中session.getMapper方法源码分析

0开始代码AuthorMapper mapper = session.getMapper(AuthorMapper.class); 1 DefaultSqlSession类 @Override public <T> T getMapper(Class<T> type) { //最后会去调用MapperRegistry.getMap......

writeademo
27分钟前
1
0
spring cloud zuul网关的作用

zuul一般有两大作用,1是类似于Nginx的网址重定向,但zuul的重定向的一般是整个spring cloud里在Eureka注册中心的模块. zuul: ignored-services: '*' sensitiveHeaders: routes: ...

算法之名
27分钟前
9
0
java按比例之原图生成缩略图

package com.wxp.test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; import sun.......

恋码之子
37分钟前
1
0
SpringCloud 微服务 (十五) 服务容错 Hystrix

壹 工作中的微服务架构,某个服务通常会被多个服务调用或者多层调用完成需求,如果某个服务不可用,导致一个系统功能不可用或者服务直接没用了的情况,这种情况称为雪崩效应 有A服务调用B服务,B服...

___大侠
39分钟前
1
0
Spring框架中的设计模式(五)

Spring框架中的设计模式(五) 通过以前的4篇文章,我们看到Spring采用了大量的关于创建和结构方面的设计模式。本文将描述属于行为方面的两种设计模式:命令和访问者。 前传: Spring框架中的...

瑞查德-Jack
42分钟前
1
0
解决phpstorm运行很卡问题!

phpStorm一旦达到这个临界值,所有智能提示、自动补全都失效了 这TM就很尴尬了,顿时感觉自己就是个废人了,纯手写代码跟便秘一样 众所周知phpStorm基于JAVA,那么这个内存限制肯定跟JAVA的虚...

sjcehui2010
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部