`

Java注解的理解

    博客分类:
  • java
阅读更多

这两天想搭一个纯粹使用注解的ssm框架,于是就看了看mybatis注解的使用方式,但是感觉java中底层注解平时不常使用都忘得差不多了,于是就重新看了一遍.
这里简单记录下1.Java中开发自定义注解类,2.自定义注解类的使用,3.自定义注解类的解析

一.自定义注解类开发

 

package com.star.frame.annotation;

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


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Name {
  String id () default "1";
  String value() default "";
  int len() default 100;
  String[] properties() default {"p1","p2"};
  Class<? extends Object> type() default String.class;
}

 

 

理解:1.注解类与接口相似,里面只能定义静态常量和抽象方法;它与接口,枚举,类属于同一层次,都被称作一种类型。

          2.java底层中提供的注解有两种:(1)常用的基本注解:@SuppressWarnings,@Deprecated,@Override(2)元注解:@Retention,@Target

          3.注解类的使用范围由@Retention决定,分三种:

RetentionPolicy.SOURCE:指定注解只保留在源文件当中,编译成类文件后就把注解去掉。

RetentionPolicy.CLASS:指定注解只保留在源文件和编译后 class 文件中,当jvm加载类时就把注解去掉。

RetentionPolicy.RUNTIME:指定注解可以保留在jvm中,这样就可以使用反射获取信息了。

默认保留在类中文件中,所以使用时一般要指定保存到RetentionPolicy.RUNTIME中

  4.可以使用注解的元素类型由@Target决定,分为以下几种:

ElementType.TYPE:说明该注解只能被声明在一个类前。

ElementType.FIELD:说明该注解只能被声明在一个类的字段前。

ElementType.METHOD:说明该注解只能被声明在一个类的方法前。

ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前。

ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前。

ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前。

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前。

ElementType.PACKAGE:说明该注解只能声明在一个包名前

不写则默认可以使用于所有元素类型。

二.自定义注解类的使用

package com.star.frame.annotation;

public class Use {

	@Name(id="name1",len=50,properties={"a","b"},value="test")
	public boolean getName(String id,int len ,String[] properties,String value){
		System.out.println(id);
		System.out.println(len);
		System.out.println(properties[0]+properties[1]);
		System.out.println(value);
		return true;
	}
}

 理解:注解的使用方法:

        1.@注解名:一般使用于有默认值的注解

        2.@注解名(方法名=方法返回值) :使用于没有默认值的注解,此时必须制定值

        3.@注解名(方法名=方法返回值,方法名={返回值1,返回值2}) :使用于方法返回数组类型的注解

        4.@注解名(返回值) :使用于只有value方法的注解,可以只写返回值

 

三.自定义注解类的解析

public class Parse {

	public void parseMethod(Class clzz) throws Exception{
		Object o = clzz.getConstructor(new Class[]{}).newInstance(new Object[]{});
		Method[] methods = clzz.getDeclaredMethods();
		for (Method method : methods) {
			Name nameClzz = method.getAnnotation(Name.class);
			if(nameClzz != null){
				String id = nameClzz.id();
				String value = nameClzz.value();
				int len = nameClzz.len();
				String[] props = nameClzz.properties();
				Class< ? extends Object> clz = nameClzz.type();
				method.invoke(o,id,len,props,value);
			}
		}
		
	}
	
}

 理解:当解析注解的时候,一般通过getAnnotation 或 getAnnotations 来获取类,方法,属性的注解类。从而使用反射进行处理

 

以上就是对于java注解使用方法的简单总结,此中有些理解的用法是参考一些博客总结出来的,作为自己的积累使用。

 

 

 

 

分享到:
评论

相关推荐

    java注解深入理解

    NULL 博文链接:https://thetopofqingshan.iteye.com/blog/1679435

    src.zip Java的注解讲解案例代码( 元注解、自定义注解、常用内置注解等)

    Java注解是一种用于提供元数据的特殊注释形式,可以应用于类、方法、字段和其他程序元素。这些元数据描述了程序结构、行为或属性的信息。Java注解以@符号开始,并包含注解名称和相关属性。Java提供了许多内置注解,...

    使用java注解.doc

    注解在Java编程中会变得越来越重要越来越常用,从EJB 3.0和JUnit 4可以看出这种趋势来,所以理解和掌握注解的使用是非常有必要的。下面这个程序自定义了两个注解,然后将注解中的信息打印出来,使用下面的代码也可以...

    深入理解Java注解类型(@Annotation)

    主要介绍了深入理解Java注解类型(@Annotation),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java或Java框架中常用的注解及其作用详解_资料.docx

    java或Java框架中常用的注解及其作用详解:Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过...

    注解+AOP优雅的实现java项目的接口参数校验(含源码)

    基于Spring boot + maven,以注解+AOP方式实现的java后端项目接口参数校验框架。迄今为止使用最简单、最容易理解的参数校验方案。博客地址:https://blog.csdn.net/weixin_42686388/article/details/104009771

    计算机后端-Java-Java核心基础-第23章 枚举类与注解 10. 注解的理解.avi

    计算机后端-Java-Java核心基础-第23章 枚举类与注解 10. 注解的理解.avi

    Java 注解

    提到注解,我们会不由的想到注释,其实注解和注释不是一个东西,注释的作用就是解释代码,方便理解和阅读,说白了就是给程序员看的。而注解则不是,注解的作用比较大,可以进行编译检查、生成doc文档或者进行代码...

    注解+自定义注解+元注解+理解

    注解+自定义注解+元注解+理解 - 本资源是一个注解的理解,解释了注解的作用和分类,以及如何用Java创建和使用自定义注解,包括使用元注解,反射,处理器等。

    全面解析Java注解

    所以学习JDK 5.0的注解知识有助于我们更好地理解和掌握Spring的AOP技术。  对于Java开发人员来说,在编写代码时,除了源程序以外,我们还会使用Javadoc标签对类、方法或成员变量进行注释,以便使用Javadoc工具...

    java中元注解及实列

    Java 注释有助于提供一种系统方法,以 Java 编译器和 JVM 可以理解、测试和验证的功能方式为特定代码添加额外信息。注解是一项极其强大的新功能,首次添加到 Java 5 中。Java 提供了一些预定义的注释,但我们也可以...

    Java枚举类的使用与注解

    1.枚举类的理解:类的对象只有有限个,确定的。我们称此为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类。 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举类 方式一:Jdk5.0...

    深入理解 Java注解及实例

    主要介绍了深入理解 Java注解及实例的相关资料,希望通过本文大家能够掌握java注解的知识,需要的朋友可以参考下

    java元注解的介绍说明

    1、本文详细描述了java元注解的作用。 2、通过详细示例,让读者更直观地阅读,更清晰的理解。 3、示例代码可直接复制,编译后可直接运行。 4、根据示例以及运行结果,让读者加强记忆及理解。

    java 中对AjAx的理解

    java 中对AjAx的理解 java 中对AjAx的理解 java 中对AjAx的理解

    JAVA设计模式--程序设计--反射--注解--泛型

    JAVA设计模式--程序设计--反射--注解--泛型

    java7hashmap源码-AnnotationDemo:注解基础知识,编译时注解和运行时注解例子

    理解Java注解 注解就相当于对源代码打的标签,给代码打上标签和删除标签对源代码没有任何影响。有的人要说了,你尽几把瞎扯,没有影响,打这些标签干毛线呢?其实不是这些标签自己起了什么作用,而且外部工具通过...

    java基础的注解和反射的相关知识点总结

    ,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记 反射和反射机制 反射(Reflection): Java的反射是指程序在运行期可以拿到一个对象的所有信息。 反射的优点和缺点: 优点:可以实现动态创建对象...

    Java基础-注解和反射

    从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有...

    JAVA注解相关知识总结

    主要介绍了JAVA注解相关知识,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

Global site tag (gtag.js) - Google Analytics