java-注解
1.注解(Annotation)
注解相当一个类或接口,每一个注解都是一个实例对象
注解的使用形式:@interface即@注解类名
定义注解类:
@interface A
{…}
使用了“注解类”的类:
@A
class B{}
对“使用了注解类的类”进行反射操作:
class C {
B.class.isAnnotationPresent(A.class);
A a=(A)B.class.getAnnotation(A.class); }
2.注解类的生命周期
源文件(.java),字节码文件(.class),内存中的字节码(运行时期被加载到内存当中).
可用枚举类:RetentionPolicy下的常量表示
RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME
java.lang.Override
表示一个方法声明打算重写超类中的另一个方法声明。
如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。
比如重写的方法名不是父类中要重写方法名,则系统会识别出来并报错。
toString 写成 tostring.
public class Person
{
@Override
public string toString ()
{
return null;
}
}
不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告。
@Deprecated //@Deprecated表示该方法过时
public static void sayHi()
{
System.out.println("hi,world");
}
用来忽略某种警告,使用方式@SuppressWarnings(value=
{TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})
eg:@SuppressWarnings(value={"deprecation"});//忽略“deprecation”类型的警告
@SuppressWarnings(value={"deprecation"})
public class Demo
{
public static void main (String []args)
{
A a=new A();
a.ma();
class A
{
@Deprecated
public void ma()
{
System.out.println("ma方法");
}
}
}}
6.归档
jdk提供的一种可以将多个文件或目录合并/压缩成单个文件(.jar)的归档工具。
jar –cvf mytest.jar A.class B.class ;//将这两个class文件打包成mytest.jar文件
打包命令,对于package xxx的xx.java文件打包
javac -d 打包后文件的路径 打包的Java文件
javac -d . Person.java ;//Person.java文件下“package hq.packag;”
用来表示其他注解的生命周期.
@Retention(RetentionPolicy.SOURCE)
public @interface AnnotationInter {
}
用来表示其他注解的使用范围,枚举ElementType下的不同常量规定了范围
TYPE(类,接口(包括注释类型),枚举),FIElD(字段),METHOD(方法),
ANNOTATION_TYPE(注释类型),CONSTRUCTOR(构造方法),PACKAGE(包)等。
@Target({ElementType.TYPE,ElementType.METHOD})
public @interface AnnotationInter {
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。