Java注解简单学习】的更多相关文章

注解(也被称作元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们在稍后某个时刻可以很方便的使用这些数据,其在一定程度上将元数据与源代码文件结合在一起,而不是保存在外部文档中. 注解使我们可以用将来由编译器测试和验证的格式,存储程序有关的额外信息.注解可以用来生成描述符文件,甚至是新的类定义,并且有助于减轻编写“样板”代码的负担.通过使用注解,将元数据保存在Java源代码中,并利用annotation API为注解构造处理工具来读取注解. Java目前只内置了三种标准注解,以及四种元注解…
背景 为什么要再次梳理一下java注解,显而易见,因为重要啊.也是为研究各大类开源框架做铺垫,只有弄清楚Java注解相关原理,才能看懂大部分框架底层的设计. 缘起 注解也叫做元数据,是JDK1.5版本开始引入的一个特性,用来对代码进行标记说明,可以对包.类.接口.字段.方法参数.局部变量等进行注解修饰.其本身不包含任何业务逻辑. 一般注解大类分为三种: JDK自带的相关注解 自定义的注解 第三方的(例如相关的框架中的注解) 注解三步走:定义.配置.解析 定义:定义标记 配置:把标记打到需要用到的…
注解简单来说就是配置,是特别的配置,之前常用的配置文件,可以用注解替换.然后通过反射去获取注解的信息. 如何定义一个注解 你在IDE中新建一个注解定义,是这样的结构的: package com.nicchagil.exercise.springbootexercise.annotation; public @interface MyFirstAnnotation { } 然后大概有4个对上述结构加上一些配置,当然,这配置是以注解的形式添加的=_=! 此注解使用在哪里 此注解会应用的哪里,可通过如…
java注解可以比喻成标签,可以贴在任何地方,也可以限制只能贴在固定地方,比如类上方.方法上方.属性[字段]上方等,然后通过反射,判断是否存在这个注解. 注解形式 public @interface Test { } 应用 //类上 @Test public class Entity{ // 属性上 @Test private int id; //方法上 @Test public void test(){ } } 元注解 元注解是什么意思呢? 元注解是可以注解到注解上的注解,或者说元注解是一种基…
学习注解Annotation的原理,这篇讲的不错:http://blog.csdn.net/lylwo317/article/details/52163304 先自定义一个运行时注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface HelloAnnotation { String say() default "Hi"; } 然后在Main函数中解析注解 @HelloAnnot…
最近在帮忙写单侧的时候,经常会和这几个对象类打交道,因为对java也不是很熟悉,刚好学习一下,都是很浅的学习,并没有深入的去学习哈,因为感觉也用不上. protected Object clone() throws CloneNotSupportedException 作用:创建并且返回一个对象的copy 在写单侧的时候,有的时候需要从一个已知对象创建出一个新的对象,一开始不知道,直接是用: Member memberA=new Member( "Tom", new Gregorian…
一.自定义注解 1. 使用关键字 @interface 2. 默认情况下,注解可以修饰 类.方法.接口等. 3. 如下为一个基本的注解例子: //注解中的成员变量非常像定义接口 public @interface MyAnnotation { //不带有默认值 String name(); //带有默认值 int age() default 20; } 4. Reflect中3个常见方法解读 getAnnotion(Class<T> annotationClass) 返回该元素上存在的,指定类…
1 Junit中的@Test为例: 1.1 用注解(@Test)前 private boolean isTestMethod(Method m) { return m.getParameterTypes().length == 0 && m.getName().startsWith("test") && m.getReturnType().equals(Void.TYPE); } 用注解前(Junit4之前),Junit一般通过类似与上面的代码来获取一个…
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: //import java.util.List; public class GenericTest { public static void main(String[] args) { List list = new ArrayList(); list.add("语文"); list.add("数学"); list.add(100); //编译错误 for (int i = 0; i &l…
使用抽象类应该注意的几个要点: 包含一个或者多个抽象方法的类必须被声明为抽象类. 将类声明为抽象类,不一定含有抽象方法. 通常认为,在抽象类中不应该包括具体方法,建议尽量将通用的域和方法放在超类中. 抽象类不可以被实例化.即不能创建这个类的对象 实例代码: import java.util.*; /** * This program demonstrates abstract classes. * @version 1.01 2004-02-21 * @author Cay Horstmann…