java之注解

注解使用

一、java的常用注解

 @Override                             重写覆盖方法

 @SuppressWarnings        压住警告可用于类和方法

 @Deprecated                      声明类或方法过时


 注解@Override用在方法上,当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错。

 

 注解@SuppressWarnings用来压制程序中出来的警告,比如在没有用泛型或是方法已经过时的时候。

  注解@Deprecated,用来表示某个类的属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰。

 

二、自定义注解

   I. 元注解 

     1、@Target   表明注解的作用域

      作用域被定义为枚举类型ElementType

     ElementType.ANNOTATION_TYPE      作用在注解上

     ElementType.CONSTRUCTOR            作用在构造方法

     ElementType.FIELD                               作用在属性上

     ElementType.LOCAL_VARIABLE       作用在本地变量

     ElementType.METHOD                         作用在方法

     ElementType.PACKAGE                       作用在包

     ElementType.PARAMETER                 作用在参数

     ElementType.TYPE                                 作用在类、接口或枚举类型

 注解@Retention可以用来修饰注解,是注解的注解,称为元注解。


   2、@Retention

   注解有一个属性RetentionPolicy 

    RetentionPolicy是一个枚举类型有3个值
      RetentionPolicy.CLASS      表示注解的信息被保留在class文件
      RetentionPolicy.SOURCE    不会留在class文件中,注解的信息只会留在源文件
      RetentionPolicy.RUNTIME  注解的信息被保留到运行时,所以他们可以用反射的方式读取。


   3、@Documented

     注解表明制作Javadoc时,是否将注解信息加入文档。如果注解在声明时使用@Document的,则在制作Javadoc时注解信息会加入javadoc

   

   4、@Inherited

     注解表示注解是否被子类继承。默认情况是不会继承。当在注解声明时时有@Inherited,则注解将会被该注解的类的子类所继承。


   II、定义注解

定义新的Annotation类型使用@interface关键字(在原有interface关键字前增加@符号)。定义一个新的Annotation类型与定义一个接口很像,例如:

public @interface Test{
}

定义完该Annotation后,就可以在程序中使用该Annotation。使用Annotation,非常类似于public、final这样的修饰符,通常,会把Annotation另放一行,并且放在所有修饰符之前。例如:

@Test
public class Person{
}


  III、定义注解的成员变量
Annotation只有成员变量,没有方法。Annotation的成员变量在Annotation定义中以“无形参的方法”形式来声明,其方法名定义了该成员变量的名字,其返回值定义了该成员变量的类型。例如:

public @interface MyAnnotation{string value();int age();
}

示例中定义了2个成员变量,这2个成员变量以方法的形式来定义。


 

    III、注解参数类型

   注解参数必须是所有基本类型,包括(int, float, boolean), String, Class, enum, Annotation, 以及以上类型的数组


    IV、注解参数赋值

    注解的参数要么在定义是赋值,要么在使用时赋值。如果注解中定义参数value,并且在使用时,value是唯一的需要赋值的参数,则无需指出参数名字,直接把参数值填在括号里。

@MyAnnonation(value="amethod",count=2)
public void aMethod(){
} 
@Target(ElementType.METHOD)            //注解作用在方法
@Retention(RetentionPolicy.RUNTIME)    //注解保留到运行时
public @interface MyAnnonation  
{  String value() ; int count() default 1;
}
@MyAnnonation("method")
public void method(){
}  

RetentionPolicy.RUNTIME 可以让你从JVM中读取Annotation注解的信息,以便在分析程序的时候使用.


@MyAnnonation(value="amethod",count=2)
public void aMethod(){
} 
@Target(ElementType.METHOD)            //注解作用在方法
@Retention(RetentionPolicy.RUNTIME)    //注解保留到运行时
public @interface MyAnnonation  
{  String value() ; int count() default 1;
}
@MyAnnonation("method")
public void method(){
}  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java集合——队列和双端队列+优先级队列

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——队列和双端队列优先级队列 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-j…

java无效的源发行版_无效的Java

java无效的源发行版也许我可以被机器人代替进行代码审查。 有一些反馈我发现自己一遍又一遍。 这是我最不喜欢的一些: 通用代码结构 放弃其他 当if在两端return的else是多余的和不必要的创建缩进。 if (foo) { return bar; } else { return baz; } // should be…

oracle数值型转为char类型,PLSQL: Oracle函数to_char转化数字型指定小数点位数的技巧...

问题题出: 数字0.023 > 转化成字符串"0.023"问题难点:to_char,函数功能,就是将数值型或者日期型转化为字符型。比如最简单的应用:Select TO_CHAR(1.0123) FROM DUALSelect TO_CHAR(123) …

java之常用方法

一、数学函数 在System.Math类里面的函数 I、三角函数 sin(radians) 正弦函数 cos(radians) 余弦函数 tan(radians) 正切函数 toRadians(degree) 角度转为弧度 toDegree(radians) 弧度转为角度 asin(a) 反正弦函数 acos(a)…

java集合——映射表+专用集合映射表类

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——映射表专用集合映射表类 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-jav…

jstat分析_jstat –分析

jstat分析jstat是一个简单的实用工具,在JDK中存在,用于提供与JVM性能相关的统计信息,例如垃圾收集,编译活动。 jstat的主要优势在于,它可以在运行JVM且无需任何先决条件的情况下动态捕获这些指标。 这是什么意思&#…

oracle中execute函数,oracle Execute Immediate(sql语句)

慕尼黑的夜晚无繁华Example 1:Output:ABCDECLARE TYPE var_typ IS TABLE OF VARCHAR2(4000);cVars var_typ;cVar VARCHAR2(4000);BEGINEXECUTE IMMEDIATE SELECT A cc FROM dualUNIONSELECT B cc FROM dualUNIONSELECT C cc FROM dual BULK COLLECT INTO cVars; FOR i IN 1 .…

java之数组

一、声明数组 数组是引用类型,声明数组并没有分配空间,则该数组变量的值为null。 类型[] 数组名; 如:double[] data; 二、创建数组 类型[] 数组名new 类型[长度]; 数组创建,数组里面的元素会被赋值,数值型基本数据…

java集合——集合框架

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——集合框架 的相关知识; 【1】集合框架 1.1) java集合类库构成了集合类的矿建, 它为集合的实现者定义了大量的接口…

oracle密码不能重复用_重复码

oracle密码不能重复用介绍 在我们的Java应用程序中复制/粘贴代码通常不好,但是有时这是不可避免的。 例如,项目License3j在Feature类中为其支持的每种XXX类型提供了一个isXXX方法。 在这种情况下,我们做不到写 public boolean isBinary() { r…

oracle rman 用户,对Oracle数据库进行RMAN备份的Oracle数据库用户权限

在Oracle 12版本或者更高版本,Oracle备份用户需要具有SYSDBA或者SYSBACKUP权限在Oracle 11(包括11版本)以前,Oracle备份用户需要具有SYSDBA权限创建及授权用户权限命令示例如下:SQL>create user backupuser identified by oracle;SQL>g…

java之类

一、构造方法1)构造方法具有与类的相同名字2)构造方法没有返回值,甚至连void都没有3)创建新对象使用new,构造方法的作用就是初始化对象。格式为: [可见修饰符] 类名(参数表){}例如:public Myclass(){}普通方法: p…

pmml_再访PMML

pmml嗨伙计! 从今年年初开始,就有了重新设计Drools PMML模块的计划。 在这篇文章中,我将描述我们将如何处理它,目前的状态,未来发展的想法等,等等……敬请期待! 背景 PMML是一个标准&#xff…

java集合——视图与包装器

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——视图与包装器 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-java-volume/b…

php把表单转为json保存,javascript – 使用jquery将表单数据保存到本地json文件中

我有一个带有一些输入字段的基本表单.我想在提交表单时将表单数据保存到json文件中.json文件中保存数据的格式应如下所示.[{"title":"some text","description":"some text","info":"some text","username&q…

java之包装类与BigInteger、BigDecimal

一、包装类 (1)包装类与原类型 Integer int 的包装类 Boolean boolean 的包装类 Character char的包装类 Double double的包装类 Float float 的包装类 Byte …

哈希值 哈希表_哈希杰森

哈希值 哈希表我最近写了一个简单的库,可预测地对json进行哈希处理 。 该实用程序基于出色的Jackson Json解析库构建 问题 我需要从相当大的基于json的内容生成的哈希值,以便稍后确定该内容是否发生了更改。 将json视为字符串不是格式化的选项&#xf…

新浪微博搜索php待遇,新浪微博面试

PHP技术基础1、合并数据的函数。我当时回答的是array_merge(),array_combine()(注意与前者的区分);当时面试官告诉我还可以使用 加号()2,判断一个IP地址是否合法。只让说一下思路:(1)用点分割.,$arrIp explore();(2)判…

java集合——集合与数组间的转换+算法

【0】README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合——集合与数组间的转换算法 的相关知识; 0.2) for full source code , please visit https://github.com/pacosonTang/core-jav…

java之String

一、String类的特性 String对象是不可变的,字符串一旦创建,就不可以改变。二、构造字符串字符串直接量String anew String("字符串直接量"); 字符数组String bnew String(chars);字符串直接量赋值,java把字符串直接量看作String对象…