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 ...
随机推荐
- java 打开txt文件或者bat文件
package open_exe; public class OpenExe { public static void openWinExe() { Runtime rn = Runtime.getR ...
- 基于swoole的网页一对一实时聊天
需求分析 网站上实现一对一即时沟通,能查看聊天记录以及离线留言,新消息提醒. 核心技术 html5的websocket,php的swoole扩展http://wiki.swoole.com/ 数据表 ...
- EntityFramework code first 一些常用的约束特性
参阅: https://msdn.microsoft.com/zh-cn/data/jj591583 1. 主键 public class Test { //名称为 ID 的属性会自动映射为主键(自增 ...
- What’s the difference between data mining and data warehousing?
Data mining is the process of finding patterns in a given data set. These patterns can often provide ...
- Java 一维数组 二维数组 三维数组
二维数组包含一位数组 三维数组就是在二维数组的基础上,再加一层.把二维数组看做是一维数组就可以了,按照上述理解类推. 下面是 一维 二维 三维数组例子 一维数组: int[] array1 ...
- The tag 'DataGridTextColumn' does not exist in XML namespace ....
错误 10 The tag 'DataGridTextColumn' does not exist in XML namespace 'http://schemas.microsoft.com/win ...
- RDIFramework.NET V2.5(.NET快速信息化系统开发框架) Web版界面样例(可参考)
RDIFramework.NET V2.5(.NET快速信息化系统开发框架) Web版介绍 现已升级到V2.8,点击查看 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起 ...
- RDIFramework.NET(.NET快速开发框架) 答客户问(2014-02-23)
1.框架的部署安装,服务器端和客户端 答:开发版以上版本支持SOA模式,也即真正的面向服务端的模式,在实际使用过程中,可根据项目的实际需要,来选择性的进行部署(直连模式或SOA模式),如需要分布式应用 ...
- 解决 No resource found that matches the given name (at 'icon' with value '@drawable/icon') 问题
对新解决方案Xamarin的Android项目在项目属性 换图标后 会出现 No resource found that matches the given name (at 'icon' with ...
- logback文章推荐
logback 配置详解:http://www.cnblogs.com/zhuawang/p/4002975.html Logback 日志输出到 mysql:http://www.codeweblo ...