`

如何自定义Annotaton

    博客分类:
  • java
阅读更多
关键字: 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. }  


http://yahaitt.iteye.com/blog/144418
分享到:
评论

相关推荐

    FreeSwitch完整的自定义模块定义和改善自定义事件的例子

    本篇文章将深入探讨如何定义和优化自定义模块,以及处理自定义事件。 首先,理解FreeSwitch模块的生命周期是至关重要的。一个模块通常包括加载、初始化、运行和卸载四个阶段。在加载阶段,模块被FreeSwitch核心加载...

    QT自定义窗口 自由拖动 自定义标题

    在QT编程中,自定义窗口是一项常见的需求,它允许开发者根据应用的需求来设计独特的界面元素和交互方式。本文将深入探讨如何在QT中创建自定义窗口,并实现自由拖动和自定义标题的功能。 首先,我们需要了解QT中的...

    C#自定义控件库

    "C#自定义控件库"是指使用C#语言编写的、由开发者自定义的控件集合,这些控件可以扩展.NET Framework的标准控件集,为用户提供更丰富的界面元素和功能。自定义控件是软件开发中的一个重要环节,特别是在UI设计和用户...

    freemarker 自定义freeMarker标签

    本篇将深入探讨如何自定义FreeMarker标签,以扩展其功能并适应特定项目需求。 首先,理解FreeMarker的默认标签语法至关重要。FreeMarker使用${...}表达式来插入变量,#{...}用于输出注释,以及、等控制结构进行条件...

    C# WinForm 自定义CheckBox

    本教程将深入讲解如何在WinForms中自定义CheckBox控件,以满足特定的界面或功能需求。 首先,自定义CheckBox控件主要是为了扩展其默认功能,比如改变其外观、添加额外的事件处理或者提供更复杂的交互逻辑。在VS2005...

    鸿蒙+自定义组件+实例代码

    鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例鸿蒙自定义组件实例...

    C#的自定义组件和自定义控件

    在.NET Framework中,C#提供了一个强大的平台来创建自定义组件和控件,这使得开发者可以扩展.NET Framework的基础功能,实现特定的需求。本项目聚焦于C#中的自定义组件和控件开发,涵盖了一些常见的实用功能,如速选...

    springboot工程自定义response注解、自定义规范化返回数据结构

    本主题将深入探讨如何在Spring Boot工程中通过自定义response注解、利用Java反射机制、设置自定义拦截器以及实现WebMvcConfigurer接口来实现这一目标。 首先,我们来看自定义response注解。在Spring Boot中,可以...

    c#自定义漂亮按钮

    在C#编程中,自定义用户控件是提高应用程序界面美观性和功能多样性的重要手段。本教程将基于给定的"C#自定义漂亮按钮"主题,深入讲解如何利用C#和Visual Studio 2010创建一个自定义的按钮控件。我们将主要探讨以下几...

    Android自定义日期选择器源码

    因此,开发者经常需要自定义日期选择器来提供更符合应用风格或特定功能的交互体验。这篇内容将深入探讨如何在Android中创建一个自定义日期选择器,并通过源码分析来增强我们的理解。 首先,我们要明白自定义日期...

    android 自定义view及自定义属性

    在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...

    Arx创建自定义实体

    在AutoCAD平台上,开发者可以利用ObjectARX(Autodesk Reactor Extension)库来创建自定义实体,这是一种基于C++的编程接口,允许程序员深入到AutoCAD的内部工作流程,实现扩展功能和定制化操作。本篇文章将详细探讨...

    C# WinForm 自定义 RadioButton

    在C# WinForm应用开发中,自定义RadioButton控件是一种常见的需求,这通常涉及到扩展.NET Framework提供的默认RadioButton控件的功能,以满足特定的设计或交互需求。本教程将深入讲解如何在Visual Studio 2005及其更...

    Qt实现的自定义tip

    本篇文章将详细探讨如何在Qt中实现一个自定义的提示框(Tip),即“自定义tip”。 首先,我们要理解“tooltip”在UI设计中的作用。Tooltip是当鼠标悬停在某个控件上时,会短暂显示的一段文字信息,用于提供关于该控件...

    C#自定义控件之-自定义MessageBox

    在开发这些应用程序时,有时我们需要根据项目需求创建特定的用户界面元素,这正是自定义控件的作用所在。本主题将深入探讨如何在C#中自定义一个类似于系统默认`MessageBox`的控件。 `MessageBox`是.NET Framework...

    MFC 自定义消息和自定义类

    在Microsoft Foundation Classes (MFC)库中,开发者可以利用自定义消息和自定义类来扩展框架的功能,以满足特定项目的需求。自定义消息是Windows消息系统的一部分,允许程序员定义自己的消息类型,而自定义类则提供...

    3000个PS自定义形状

    在Photoshop(PS)这个强大的图像处理软件中,自定义形状是一个非常实用的功能,它提供了大量预先设计好的图形,用户可以方便地导入和使用这些形状,以提高创作效率。"3000个PS自定义形状"这个资源集合涵盖了丰富的...

    tp自定义标签

    在ThinkPHP中,自定义标签(Tag Lib)是一种强大的特性,允许开发者扩展模板引擎的功能,使其更符合项目需求。下面将详细解释如何在ThinkPHP 3.0版本中实现自定义标签及其使用方法。 1. **自定义标签的作用** ...

    c#自定义控件实例大全,.NET自定义控件实例大全,WINFORM自定义控件实例大全

    "C#自定义控件实例大全,.NET自定义控件实例大全,WINFORM自定义控件实例大全"这个主题涵盖了创建、定制和使用自定义控件的全过程,旨在帮助开发者扩展.NET Framework的基础控件功能。 一、自定义控件的概念 自定义...

Global site tag (gtag.js) - Google Analytics