`
yahaitt
  • 浏览: 759958 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

自定义Annotation类型

阅读更多

自定义Annotation类型:标识符(marker Annotation):@interface

Annotation的使用:可以放在任何地方,如类的前面,方法的前面,变量、属性的前面等等。

Annotation的定义:

在定义Annotation型态的时候不能继承其它的Annotation型态或接口

1、不带参数的定义与使用

java 代码
  1. package com.test;   
  2.   
  3. public @interface AnnotationTest {   
  4.   
  5. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest  
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

 2、带一个参数的定义与使用,请注意:

如果定义的参数是"value"这个字符串,那么在使用时可以这样写:@AnnotationTest("hello")也可以这样写:@AnnotationTest(value = "hello"),如果定义的参数不是"value"这个字符串,那么在使用的时候必须显式赋值,也就是必须用@AnnotationTest(value = "hello") 这样的模式,如String value1(); 那么对应的是@AnnotationTest(value1 = "hello") 因为value是个默认的,所以在使用是可以显式也可以隐式

java 代码
  1. package com.test;   
  2.   
  3. public @interface AnnotationTest {   
  4.     String value();   
  5. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest("hello")   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 3、带多个参数的定义与使用,请注意:

 带多个参数的话,定义的时候用的是数组,使用的时候,可以是作为单个的也可以作为数组的形式 

java 代码
  1. package com.test;   
  2.   
  3. public @interface AnnotationTest {   
  4.     String[] value();   
  5. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest("hello")   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest({"hello"})   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest({"hello","world"})   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest(value = {"hello","world"})   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

4、定义默认值的使用

java 代码
  1. package com.test;   
  2.   
  3. public @interface AnnotationTest {   
  4.     String value() default "yahaitt";   
  5. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest  
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest("hello")   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public @interface AnnotationTest {   
  4.     String value1() default "ttitfly";   
  5. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest  
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest(value1 = "hello")   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

4、枚举在Annotation中的使用

java 代码
  1. package com.test;   
  2.   
  3. public @interface AnnotationTest {   
  4.     EnumTest value1();   
  5. }   
  6.   
  7. enum EnumTest   
  8. {   
  9.     Hello,Yahaitt,Ttitfly   
  10. }  

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest(value1 = EnumTest.Hello)   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public @interface AnnotationTest {   
  4.     EnumTest value1() default EnumTest.Yahaitt;   
  5. }   
  6.   
  7. enum EnumTest   
  8. {   
  9.     Hello,Yahaitt,Ttitfly   
  10. }  

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest  
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   

 

java 代码
  1. package com.test;   
  2.   
  3. public class AnnotationUsage {   
  4.     @AnnotationTest(value1 = EnumTest.Hello)   
  5.     public void method()   
  6.     {   
  7.         System.out.println("usage of annotation");   
  8.     }   
  9.     public static void main(String[] args)   
  10.     {   
  11.         AnnotationUsage au = new AnnotationUsage();        
  12.         au.method();   
  13.     }   
  14. }   
分享到:
评论

相关推荐

    自定义Annotation例子

    处理器需要实现`Processor`接口,并在`@SupportedAnnotationTypes`注解中声明所支持的自定义Annotation类型。处理器的任务可以是生成额外的源码或编译时的验证。例如: ```java @SupportedAnnotationTypes(...

    自定义的Annotation

    总结一下,自定义Annotation的关键步骤包括:创建一个遵循`MKAnnotation`协议的类,重写`mapView(_:viewFor:)`以定制视图,处理点击事件,以及将Annotation添加到地图上。通过这些步骤,开发者可以自由地在地图上...

    自定义Annotation注解

    本教程将通过一个简单的自定义Annotation注解示例——`CustomAnnotationDemo`,帮助新手了解如何创建和使用自定义注解。 首先,让我们看看如何定义一个自定义注解。在Java中,注解的定义使用`@interface`关键字。...

    Java-Annotation手册.docx

    Java 6 开始支持自定义 Annotation 类型。 2. Annotation 的使用场景: - 编译器警告和错误:Annotation 可以指示编译器进行特定检查,如 `@NonNull` 表示参数或变量不应为 null,违反此规则时编译器会发出警告。 ...

    自定义annotationProcessor

    3. 注解处理器需要标记`@javax.annotation.processing.Processor`注解,并指定其处理的注解类型。 4. 编写注解类,定义你需要在编译期间处理的行为。 5. 在项目的`build.gradle`文件中配置`annotationProcessor`依赖...

    Java.Annotation

    定义一个Annotation类型通常使用`@interface`关键字,它可以包含一些成员,这些成员可以是基本类型、字符串、枚举或其他Annotation类型。成员的默认值可以通过`default`关键字来设置。例如,定义一个简单的Marker ...

    自定义注解annotation及用法

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了向编译器、工具或运行时系统提供额外信息的方式。自定义注解允许开发者创建自己的标记来满足特定需求,比如代码生成、验证、持久化等。本文将深入探讨...

    Annotation技术

    自定义Annotation实际上自动继承了`java.lang.annotation.Annotation`接口,但不能继承其他Annotation类型或接口。这使得Annotation成为一种单继承的类型。 总之,Annotation技术是Java编程中的一个强大工具,它...

    自定义全局类型转换器

    然而,有时系统默认的转换器可能无法满足我们所有的需求,这时就需要自定义全局类型转换器。本文将深入探讨如何实现自定义全局类型转换器,以提升系统的灵活性和扩展性。 Spring MVC中的类型转换主要由`...

    Java实战篇:设计自己的Annotation

    #### 一、Java中的内置Annotation类型介绍 在Java的世界里,Annotation(注解)的应用越来越广泛。本文将重点介绍Java 1.5及以后版本中内置的三种常用注解类型及其应用方式,并进一步探讨如何自定义Annotation。 *...

    Annotation使用手册

    自定义 Annotation 的创建涉及到定义 Annotation 类型和实际使用 Annotation。定义 Annotation 类型时,使用 `@interface` 关键字: ```java public @interface MyAnnotation { String value() default ""; } ``` ...

    JavaAnnotation手册.pdf

    2. 自定义Annotation:自定义Annotation需要定义一个接口,这个接口就是Annotation类型。通过定义成员变量(通常带有默认值),可以为Annotation添加特定的元数据。自定义Annotation可以通过`@interface`关键字创建...

    重难点之JavaAnnotation手册.pdf

    - 自定义Annotation允许开发者创建自己的Annotation类型,以满足特定需求。在Java 6.0及更高版本中,javac编译器已经支持自定义Annotation的处理。 三、Annotation的使用和处理 - Annotation的处理通常涉及到两个...

    java8源码-APTDemo:自定义AnnotationProcessor处理自己的Annotation

    @Target:用于描述注解的使用范围,如果自定义注解不存在@Target,则表示该注解可以使用在任何程序元素之上。接收参数ElementType,其值如下: /**接口、类、枚举、注解**/ ElementType.TYPE /**字段、枚举的常量**/...

    Annotation手册

    5. **自定义Annotation**:从Java 6.0起,开发者可以创建自己的Annotation类型,定义特定的元信息。这使得开发人员能够创建特定于应用程序的Annotation,用于各种目的,如验证、持久化、事务管理等。 6. **...

    JavaAnnotation手册[借鉴].pdf

    Java 6.0进一步扩展了对自定义Annotation的支持,允许开发者创建自己的Annotation类型,以满足特定需求。自定义Annotation通常需要与Annotation处理器配合,如Java的Apt工具,它可以扫描源代码,根据Annotation执行...

    Java软件开发实战 Java基础与案例开发详解 16-3 自定义标注类型 共7页.pdf

    ### Java软件开发实战:自定义标注类型 #### 16.3 自定义标注类型 **标注(Annotation)** 是Java 5引入的一个重要特性,它为元数据提供了一种标准化的方式来描述程序元素(如类、方法等)。通过使用标注,开发者...

    struts2自定义数据类型转换练习

    如果内置的转换器无法完成转换,例如,字符串转换为自定义类型的对象,我们就需要自定义一个类型转换器。 创建自定义数据类型转换器需要实现`org.apache.struts2.util.TypeConverter`接口。这个接口包含了一个核心...

Global site tag (gtag.js) - Google Analytics