Browse Source

0324 anno

Qing 1 year ago
parent
commit
dc84b4732e

+ 16 - 0
springboot-demo/src/main/java/com/sf/mq/anno/Param.java

@@ -0,0 +1,16 @@
+package com.sf.mq.anno;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+// 声明注解 声明注解可以使用的位置
+// 可以在方法之上 可以在类或接口之上
+// 声明注解使用的时期  运行时
+@Target({ElementType.METHOD,ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Param {
+    String name();
+    String desc();
+}

+ 12 - 0
springboot-demo/src/main/java/com/sf/mq/anno/ParamArr.java

@@ -0,0 +1,12 @@
+package com.sf.mq.anno;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD,ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ParamArr {
+    Param[] arr();
+}

+ 22 - 0
springboot-demo/src/main/java/com/sf/mq/anno/TestParam.java

@@ -0,0 +1,22 @@
+package com.sf.mq.anno;
+
+import java.lang.annotation.Annotation;
+
+@ParamArr(arr = {
+        @Param(name = "name1", desc = "desc1"),
+        @Param(name = "name2", desc = "desc2")
+})
+//@ParamArr(arr = @Param(name = "name1", desc = "desc1"))
+public class TestParam {
+
+    public static void main(String[] args) {
+        Class c = TestParam.class;
+        ParamArr paramArr = (ParamArr) c.getAnnotation(ParamArr.class);
+        Param[] arr = paramArr.arr();
+        for (Param param : arr) {
+            System.out.println(param.name());
+            System.out.println(param.desc());
+            System.out.println("-----");
+        }
+    }
+}