Java 注解

 1 /**
 2  * 标注
 3  * : Java应用主要有两种配置方式。
 4  *         xml:  做配置文件
 5  *         perperties:属性文件
 6  *         json:做配置        
 7  *         注解:(做配置)
 8  */
 9 public class Demo02 {
10     @Override //重写注解
11     public String toString() {
13         return super.toString();
14     }
15 }
16 //-- @Deprecated  :弃用
17 //-- 自己编写标注
18 //-- @interface 定义标注
19 //-- @Target、@Retention 元标注,sun公司人写的,是用于标注标注的标注
20 //-- @Documented:是用于生成API文档
21 //-- @Target:是用于说明你写的标注用于什么地方,
22 //--      例如:Type说明该标注可以再类上使用,METHOD说明可以修饰方法
23 //-- @Retention:用于说明你写的标注要在什么时候还起作用,在程序运行时标注还能jvm检测到(范围)。
24 //--        
25 @Target({ElementType.TYPE,ElementType.METHOD})
26 @Retention(RetentionPolicy.RUNTIME)
27 @interface Hello{
28     String value() default "ubdf1907";
29 //-- default 设置默认值 //value特殊:使用时可以不写@Hello("dd");
30     String foo();
31     String[] url();
32 }
33 
34 //@Hello
35 class Animal{
36     
37     @Override
38     @Hello(foo="李四",url={"aaa","bbb"})
39     public String toString() {
40         // TODO Auto-generated method stub
41         return super.toString();
42     }
43     @Hello(value = "张三",foo="李四",url={"aaa","bbb"})
44     public void test01() {
45         //-- value相当于给Hello标注定义一个属性。
46         System.out.println("test01");
47     }
48     @Hello(value = "张三",foo="李四",url={"aaa","bbb"})
49     public void test02() {
50         //-- value相当于给Hello标注定义一个属性。
51         System.out.println("test01");
52     }
53     @Controller(urlPartten= {"/estore/aaa","/estore/bbb"})
54     public void test04() {
55         
56     }
57 }
58 
59 /**
60  *
61  * 自定义第二个注解@Controller
62  *
63  */
64 @Target({ElementType.TYPE,ElementType.METHOD})
65 @Retention(RetentionPolicy.RUNTIME)
66 @interface Controller{
67     String[] urlPartten();
68 }
练习:使用反射技术获取带有@Controller 标注的方法,并执行它。
posted @ 2019-10-17 23:20  张泽  阅读(256)  评论(0编辑  收藏  举报