java注解
来源:互联网 发布:java封装类例子 编辑:程序博客网 时间:2024/06/04 08:06
注解与注释?
注解不是注释!两种情形,或者说没有多大的相同之处。
注释:对代码的解释,不参与编译。
在编译源代码时,不会参与编译,注释存在于否,与最终生成的可执行文件没有影响。
c语言中只支持一种类型的注释,就是“段落注释”或“多行注释”:
/*
注释内容行1
注释内容行2
*/
有一些要求,就是注释内容中不能再包含多行注释。
在C++中支持两种类型的注释:
多行注释与C中相同
另增加了一个“单行注释”,将注释内容写在代码的右边;
int number = 10; //定义一个整型变量,并且赋值为10
与C中的注释相比,单行注释更加通用,因为比较灵活。
在Java和C#中,它们都支持三种类型的注释;
除了C++中提供的两类外,又增加了一种“文档注释”,其作用是用来生成注释所在对象的帮助文档。
/*** @author xuxiaomei1
*/
以上说到的三种注释,其主要作用是用来对代码进行解释,对于生成的最终可执行代码不会产生任何影响。
注解:
5.0版本新增加的功能。
用到的注解功能有关的对象都在java.lang.annotation包中。
注解与反射功能息息相关。
与注释不同的是,注解会对代码的各个阶段产生不同的影响。或者影响程序的编译,或者影响程序的最终结果。
注解会对Java程序的哪几个阶段产生影响?
三个阶段:
1、 以.java为后缀的源代码文件,注解会对这个阶段产生影响;
源代码级别的注解:SOURCE
2、 用javac.exe命令对源文件进行编译,会生成.class文件,注解会对这个阶段产生影响;
字节码级别的注解:CLASS
3、 用java.exe命令对字节码文件(class文件)进行解释(在jvm上运行),生成最终结果。注解会对这个阶段产生影响。
虚拟机级别的注解:RUNTIME
将注解功能抽象为一种称为“注解”的对象,可以建立这样的对象。
标准类库提供的标准注解:
@Override 只用来对方法进行注解,解决编译时的问题。
@Deprecated 对类,对方法都能进行注解,解决类或方法过时的问题
@SuppressWarnings 解决对于警告的忽略问题,压制各种各样的警告。
标准注解1:
java.lang
注释类型 Override
@Target(value=METHOD)@Retention(value=SOURCE)
public @interface Override
第二个标准注解:
java.lang
注释类型 Deprecated
@Documented
@Retention(value=RUNTIME)
public @interface Deprecated
一段测试“过时注解”的代码:
package com.sunzone.gao.annotations;
publicclass Test02 {
publicstaticvoid main(String[] args) {
TestClass tc =new TestClass();
tc.test();
}
}
@Deprecated
classTestClass {
@Deprecated
publicvoidtest() {
System.out.println("hello!");
}
}
第三个标准注解:忽略或压制警告:
java.lang
注释类型 SuppressWarnings
@Target(value={TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})
@Retention(value=SOURCE)
public @interface SuppressWarnings
如何得到一个对象的注解?
当自定义一个注解,而本身没有设置@Target注解时,则支持所有对象类型。
设计一个综合注解的测试类:
@MyAnnotation
package com.sunzone.gao.annotations;
class TestAnnotationClass {
@MyAnnotation
private int va;
@MyAnnotation
private static int counter;
@MyAnnotation
public TestAnnotationClass() {
}
@MyAnnotation
public TestAnnotationClass(int va) {
this.va = va;
}
@MyAnnotation
public float test(@MyAnnotation int x, @MyAnnotation float y) {
return x + y;
}
}
查看以上的测试类TestAnnotationClass,共有若干类元数据对象被同一个注解进行处理,分别是:
1、 实例字段对象
2、 静态实例字段对象
3、 类对象
4、 构造器对象
5、 方法对象
6、 方法中的参数对象
注解对象中的成员 有哪些?
注解中没有方法!
只有字段成员,它的设置是通过方法的样式进行的。
方法参数中的注解,因为参数Parmater对象是属于方法Method对象的,所以要用到Method类中的一个方法:
getParamaterAnnotations()
- Java注解-自定义注解
- Java注解----自定义注解
- Java注解自定义注解
- Java注解--四种元注解
- Java注解-三种內建注解
- 【Java】【注解】自定义注解
- java注解
- java注解
- java注解
- java 注解
- Java注解
- java 注解
- Java 注解
- Java注解
- java 注解
- JAVA注解
- Java注解
- Java注解
- javase的部分摘要
- freeradius增加Access-Challenge支持
- Unity3d脚本周期
- Sql injection 教程,包括盲注 (英语版+翻譯)
- HDU4289(最大流)(dinic算法+拆点)
- java注解
- NYOJ 189 兔子的烦恼(一)
- 5.Go by Example: For
- U盘原版安装windows 2003(32/64位)
- 情人节ios小程序
- C++中placement new操作符(经典)
- IOS多线程
- BeanFactory与ApplicationContext【Spring】
- 一段失败的代码 inotify的使用