您现在的位置是:首页 > Java 当前栏目 使用Java 注解 JAVA 重写 2023-03-02 11:03:49 时间 ![Center][] 我们常常看到在一个子类重写父类的某个方法的时候,在这个子类重写的父类方法的前面会出现一行@Override,这个就是注解,它表示一个方法声明打算重写超类的另一个方法声明。如果方法利用此注释类型进行注解但是却没有重写超类的方法,则编译器会生成一条错误信息。还有如:@SuppressWarnings()指示应该在注释元素中取消显示指定的编译器警告。还可以自己定义自己的注解类型,格式如下: @Target(\{ElementType.TYPE\}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface MyAnnotation \{ String value(); \} 上面定义了一个名叫MyAnnotation的注解类型,String value表示需要传递一个字符串类型的值给value属性。可以使用Target注解类型指示该自定义注解类型所适用的程序元素种类。 ElementType.TYPE表示使用于类、接口或枚举声明。使用注解类型Retention来指示该注解类型要保留多久,RetentionPolicy.RUNTIME表示编译器将把注解记录在类文件中,在运行时VM将保留注解,因此可以反射性的读取。@Document表示该注解可以被写到文档里面。@Inherited表示该注解可以被子类继承,但是@Target必须的属性值必须为ElementType.TYPE才能被继承。 对于大多数Programmer而言,在JPA中,Annotation其实就是OR-Mapping XML文件的替代者。注意,JPA中的Annotation都是RUMTIME的,从灵活性的角度将,我们往往希望使用配置文件而不是Annotation。 下面是我common-util下的一个关于Java代码的注释:终于通过这个例子让我彻底掌握了Annotation这东东。 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface JavaSource \{ String author() default "treeClimber"; /\* 作者 \*/ String email() default "xionglb@163.com"; /\* 联系E\_Mail \*/ String company() default "http://www.treeclimber.cn/"; /\* 公司名 \*/ String project() default "common-util"; /\* 所属项目 \*/ String descript(); /\* 类描述 \*/ float version() default 1.0f; /\* 版本号 \*/ String created(); /\* 创建时间 \*/ \} @Target( \{ ElementType.TYPE, ElementType.METHOD \}) @Retention(RetentionPolicy.RUNTIME) public @interface LastModified \{ int year(); int month(); int date(); String modifier(); String descript(); String format() default "yyyy-MM-dd"; \} @JavaSource(version = 1.5f, project = "demoproj", descript = "学习Java5 Annotation", created = "2010-04-12") public class JavaSourceTest \{ @LastModified(modifier = "xiongsl", year = 2010, month = 5, date = 5, descript = "Add the Method") public void say(String world) \{ System.out.println("Hello, " + world); \} @SuppressWarnings("deprecation") public static void main(String\[\] args) \{ if (JavaSourceTest.class.isAnnotationPresent(JavaSource.class)) \{ JavaSource anno = JavaSourceTest.class.getAnnotation(JavaSource.class); System.out.println("Author:" + anno.author()); System.out.println("Company:" + anno.company()); System.out.println("Descript:" + anno.descript()); \} try \{ Method m = JavaSourceTest.class.getDeclaredMethod("say", String.class); LastModified anno = m.getAnnotation(LastModified.class); Date date = new Date(anno.year(), anno.month() - 1, anno.date()); System.out.println("LastModified by " + anno.modifier() + " At " + new SimpleDateFormat(anno.format()).format(date) + ", Note:" + anno.descript()); \} catch (Exception e) \{ e.printStackTrace(); \} \} [Center]: /images/20220823/da0f0f7183124f5598b888fa4ca03178.png 本文地址: 使用Java 注解 相关文章 Java异常机制 JAVA-jstat 详解 Java基础--小结 Java: @Inject注解 java解析excel Java文件File Java之NIO java.io.File Java体系结构 java题目(一) java引用类型 JAVA解析Excel Java 计算机网络 java可变参数 Java-类型初始化 java 操作HBase 算法-java实现 java8-实战 Java简单计算器 java集合介绍