zoukankan      html  css  js  c++  java
  • java注解

    JDK自带的三个注解:
    @Override        子类覆写父类的方法,或实现接口中的某个方法。
    @Deprecated    表明此方法已经过时了,不提倡使用
    如果一定要使用这个过时的方法,就需要使用
    @SuppressWarnings("deprecation")           抑制这个警告
     
    常见的第三方注解:
    Spring:@Autowired         自动植入,不需要写配置文件配置bean
                  @Service             用于标注业务层组件
                  @Controller         用于标注控制层组件,表明该类为控制器类
                  @RequestMapping       请求映射
     
     
    注解按照运行机制分为:
                源码注解          注解仅存在于源文件中,编译成.class文件就不在了
                编译时注解       注解在源码和.class文件中都存在(如JDK自带的)
                运行时注解       在运行阶段还起作用,甚至影响程序运行逻辑
     
    元注解:给注解添加的注解,称为元注解。
    @Target(ElementType.Method)        作用域,表明该注解使用到方法上
    @Retention(RetentionPolicy.RUNTIME)       生命周期
    @Inherited           可以继承的
    @Document         生成javadoc时会包含注解
    public @interface Desc{
             String desc();              //无参数,无异常方式成员
             String  author();
             int age() default 18;      //可以自动设置默认值
    }
     
     
    如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=)
     
     
    如何使用自定义注解:
    @Desc(desc="...",author="....",age=23)
    public String foo{
           .....
    }
     
     
    如何解析注解:java反射机制,通过字节码文件获取方法上的注解
    Class c=Class.forName("类的全限定名");
    Method[] ms=c.getMethods();
    for(Method m:ms){
        //判断此方法上是否有Desc注解
        boolean isExist=m.isAnnotationPresent(Desc.class);
         if(isExist){
                  Desc d=(Desc) m.getAnnotation(Desc.class);
                  System.out.println(d.value());
    }
    }
  • 相关阅读:
    Oracle2MySQL数据校验
    MySQL物理删除大表文件的方式
    MySQL恢复误删除的ibd文件
    如何下载MySQL企业版数据库
    C++篇之成员函数注册为回调函数
    Java入门篇
    日常收藏之Linux篇
    实现简单网页rtmp直播:nginx+ckplayer+linux
    网络通信之accept函数简述
    网络通信之bind、listen函数简述
  • 原文地址:https://www.cnblogs.com/james111/p/6607391.html
Copyright © 2011-2022 走看看