Java--枚举和注解--注解
-
package com.model.annotation; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/7/2 21:03 * 演示注解 @Override的使用 */ public class AnnotationDemo01 { public static void main(String[] args) { } } class Father{ public void test(){ } } class Son extends Father{ /* * 1. @Override 注解放在test方法上,表示子类的test方法时重写了父类的方法 2.这里如果没有写@Override 还是重写了父类的方法 3.如果你写了@Override注解,编译器就会去检查该方法是否真的重写了父类的方法,如果的确重写了,则编译通过,如果没有构成重写,则编译错误 4.看看@Override的定义 //解读:如果发现@interface表示一个注解类/* @Target(ElementType.METHOD) Retention(RetentionPolicy . SOURCE)public @interface Override { } */ @Override public void test() { super.test(); } }
-
-
-
-
-
package com.model.annotation; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/7/2 21:16 * 演示注解 @Deprecated */ public class AnnotationDemo02 { public static void main(String[] args) { A a = new A(); } } /** * * 1.修饰某个类,标识已经过时的 * 2.即不在推荐使用,但仍可以使用 * 3.查看@Deprecate的源码 :可以做版本升级过渡使用 * @Documented * @Retention(RetentionPolicy.RUNTIME) * @Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE}) :使用范围 * public @interface Deprecated { * } * */ @Deprecated class A{ private String name; }
-
-
-
package com.model.annotation; import java.util.ArrayList; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/7/2 21:24 */ public class AnnotationDemo03 { /** * @SuppressWarnings: 注解用来抑制我们的注解,警告信息的出现 * all:指定所有的警告全部抑制 * 作用范围 :我们放在方法前面只能作用与当前的方法,放在类上可以作用于整个类 * 源码: * * @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}):作用范围 * @Retention(RetentionPolicy.SOURCE) * public @interface SuppressWarnings { * String[] value(); //有一个数组说明可以传入一个数组:{"all","unchecked","unused"} * } * */ @SuppressWarnings("all") public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); int i=0; System.out.println(); } }
-
-
JDK的元注解Annotation:
-