java高薪之路__008_Annotation
元注解
共有4种 @Retention 表示需要在什么级别保存该注释信息(生命周期)
|--- RetentionPolicy.SOURCE: 停留在java源文件,编译器被丢掉
|--- RetentionPolicy.CLASS: 停留在class文件中,但会被VM丢弃(默认)
|--- RetentionPolicy.RUNTIME: 内存中的字节码,VM将在运行时也保留注解,因此可以通过反射机制读取注解的信息 @Target 默认值为任何元素,表示该注解用于什么地方
|--- ElementType.CONSTRUCTOR: 构造器声明
|--- ElementType.FIELD: 成员变量、对象、属性(包括enum实例)
|--- ElementType.LOCAL_VARIABLE: 局部变量声明
|--- ElementType.METHOD; 方法声明
|--- ElementType.PACKAGE: 包声明
|--- ElementType.PARAMETER: 参数声明
|--- ElementType.TYPE: 类、接口(包括注解类型)或enum声明 @Documented 将注解包含在JavaDoc中,Documented是一个标记注解,没有成员 @Inheried 允许子类继承父类中的注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类
package learn.JavaBasics.Class; 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;
import java.lang.reflect.Method; @Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
@Documented
@Inherited
@interface myAnnotationDemo{
public String value() default "heollo annotation";
} @myAnnotationDemo(value="test class success")
public class TestAnnotation {
public static void main(String[] args) throws SecurityException, NoSuchMethodException {
Class<?> clazz = TestAnnotation.class; if (clazz.isAnnotationPresent(myAnnotationDemo.class)) {
//获取类的注解
myAnnotationDemo mya = clazz.getAnnotation(myAnnotationDemo.class); System.out.println(mya.value()); //获取方法的注解
Method m = clazz.getMethod("testAnnotation");
myAnnotationDemo ma = m.getAnnotation(myAnnotationDemo.class); System.out.println(ma.value());
}
} @myAnnotationDemo(value="test method success")
public void testAnnotation(){ }
}
java高薪之路__008_Annotation的更多相关文章
- java高薪之路__009_网络
1. InetAddress类2. Socket: IP地址和端口号的结合,socket允许程序把网络连接当成一个流,数据在两个socket间通过IO传输, 通信的两端都要有socket. 主动发起通 ...
- java高薪之路__007_反射
参考地址: 1. http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html2. http://www.cnblogs.com/ ...
- java高薪之路__005_IO流
参考地址: 1. http://blog.csdn.net/yczz/article/details/38761237 File类 ObjectInputStream && Objec ...
- java高薪之路__003_集合
Java集合可分为Collection和Map两大体系 Collection接口 |---- Set: 元素无序.不可重复 |---- List: 元素有序.可重复 (动态数组) |---- Queu ...
- java高薪之路__002_异常处理
自定义异常 package learn.JavaBasics.Class; import java.util.Date; /** * 如何自定义一个异常类 * 1. 继承一个现有的异常类 * 2. 提 ...
- java高薪之路__001_类
Java中内部类分四种:成员内部类.局部内部类.静态内部类和匿名内部类.要注意静态内部类的调用方式与其他不同,采用的是类似调用类中的静态属性.静态方法的方式 Multi Level 调用不同类中的相同 ...
- java高薪之路__010_设计模式
设计模式只是一个在构建大型工程时,为了方便更改,添加,查询和管理的一种代码工具,没有必要单独为了设计模式而使用设计模式,使简单的事情复杂化. 总体来说设计模式分为三大类: 1. 创建型模式,共五种 - ...
- java高薪之路__006_多线程
线程的创建有两种方式 package learn.JavaBasics.Class; public class ThreadDemo extends Thread { private static i ...
- java高薪之路__004_泛型
参考地址: 1. http://www.cnblogs.com/lwbqqyumidi/p/3837629.html2. http://www.cnblogs.com/abcwt112/p/47350 ...
随机推荐
- 【axc】简单的线性动画绘制
在一个View上绘制一条直线 然后做出相应的动画效果 可以这样封装三个方法: /** * 划线工具 * * @param lineArray 线段的点数组 NSValue 类型 默认第一 ...
- CocoaPods 学习
参考文章 git address 1.简绍:CocoaPods是一个负责管理iOS项目中第三方开源代码的工具. 2.安装过程: $ sudo gem install cocoapods $ pod s ...
- Linux下dns服务器搭建
Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...
- Git branch 和 Git checkout常见用法
git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...
- 转:"在已损坏了程序内部状态的XXX.exe 中发生了缓冲区溢出"的一种可能原因
我的问题跟原作者的问题差不多.头文件和DLL不匹配导致的. 原文链接:http://blog.csdn.net/u012494876/article/details/39030887 今天软件突然出现 ...
- Sql Server Express连接字符串
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\ASPNETDB.MDF;User ...
- .net下的跨域问题
环境: IIS7.0 MVC 4.0 公司官网 asp.net 需要的报名系统,需要有后台管理 由于是配合传统产业,所以MVC系统的数据,是由AIPS系统提供. (制作前是考虑去年用 ...
- 模板 BFS
[模板]BFS #include <stdio.h> #include <string.h> #include <queue> using namespace st ...
- SQL内联多个表
SQL多个表组合成一个表: strSql.Append(@"Select N.NotificationOptionId, S.FullName, No.Title, N.SortCode, ...
- 挂羊头卖狗肉蓄意欺骗读者——谭浩强《C程序设计(第四版)》中所谓的“按照C99”(二)
挂羊头卖狗肉蓄意欺骗读者——谭浩强<C程序设计(第四版)>中所谓的“按照C99”(二) 在<谭C>p4:“本书的叙述以C99标准为依据”,下面从C89到C99的主要变化方面来看 ...