• Annotation:系统内建Annotation


    1,掌握系统内建的三个Annotation。

    Annotation被称为元数据特效,也被称为注释,即:使用注释方式,加入一些程序信息。

    Java.lang.annotation接口是所有Annotaion必须实现的接口。

    系统已经内建的三个Annotation:

    @Override:覆写的Annotation.
    
    @Deprecated:不赞成使用的Annotation
    
    @SuppressWarning:压制安全警告的Annotation

    @Overrride

    @overrride表示方法覆写的正确性,例如,如下代码:

    package 类集;
    
    class Person{
        public String getInfo(){        // 取得信息
            return "这是一个Person类。" ;
        }
    };
    class Student extends Person{    // 继承此类
        public String getInfo(){    // 覆写方法
            return "这是一个Student类。" ;
        }
    };
    public class GetInterfaceDemo {
        public static void main(String[] args) throws Exception {
            Person per = new Student() ;
            System.out.println(per.getInfo()) ;    // 输出信息
        }
    }

    此时,可能存在某种事物,将方法名称getInfo编写错误。例如写成getinfo,大小写错误,这个时候

    为了保证覆写正确性,添加覆写属性。Overrride,保证程序正确执行。

    例如,写成下面,就会报错。

    package 类集;
    
    class Person{
        public String getInfo(){        // 取得信息
            return "这是一个Person类。" ;
        }
    };
    class Student extends Person{    // 继承此类
        @Override
        public String getinfo(){    // 覆写方法,这里覆写的方法大小写错误了,就会报错
            return "这是一个Student类。" ;
        }
    };
    public class GetInterfaceDemo {
        public static void main(String[] args) throws Exception {
            Person per = new Student() ;
            System.out.println(per.getInfo()) ;    // 输出信息
        }
    }

    @Deprecated

    使用Deprecated注释的Annotation本身是不建议使用的操作,

    注释方法

    package 类集;
    
    class Demo{
        @Deprecated            // 声明不建议使用的操作
        public String getInfo(){
            return "这是一个Person类。" ;
        }
    };
    public class GetInterfaceDemo {
        public static void main(String[] args) throws Exception {
            Demo d = new Demo() ;
            System.out.println(d.getInfo()) ;
        }
    }
     

    以上程序并不会使得编译出差,但是会产生一个警告信息。

    还可以注释类

    package 类集;
    
    @Deprecated            // 声明不建议使用的操作
    class Demo{
        public String getInfo(){
            return "这是一个Person类。" ;
        }
    };
    public class GetInterfaceDemo {
        public static void main(String[] args) throws Exception {
            Demo d = new Demo() ;
            System.out.println(d.getInfo()) ;
        }
    }
     

    @SuppressWarning.

    用于压制警告信息

    以之前的泛型操作为例,在泛型中如果没有指定泛型类型,则使用时候肯定出现安全警告

    正常情况不使用annotation。没有指定泛型类型。

    package 类集;
    
    class Demo<T>{
        private T var ;
        public T getVar(){
            return this.var ;
        }
        public void setVar(T var){
            this.var = var ;
        }
    };
    public class GetInterfaceDemo {
        public static void main(String args[]){
            Demo d = new Demo() ;//因为没有给泛型指定类型,这里会有警告
            d.setVar("小华") ;  //这里会有警告
            System.out.println("内容:" + d.getVar()) ;
        }
    }
     

    此时可以使用SuppressWarning这个Annotation将这种警告信息进行压制。

    注释信息表示要强制压制的信息,可以通过@SuppressWarnings(“信息”)方式进行注释,里面的信息可以用数组形式注释

    例如:@SuppressWarnings({ "unchecked", "rawtypes" })。

    package 类集;
    
    class Demo<T>{
        private T var ;
        public T getVar(){
            return this.var ;
        }
        public void setVar(T var){
            this.var = var ;
        }
    };
    public class GetInterfaceDemo {
        @SuppressWarnings({ "unchecked", "rawtypes" })
        public static void main(String args[]){
            Demo d = new Demo() ;
            d.setVar("小华") ;
            System.out.println("内容:" + d.getVar()) ;
        }
    }
     

    通过Deprressed进行强制警告,通过SuppressWarning进行压制警告

    package 类集;
    
    @Deprecated
    class Demo<T>{
        private T var ;
        public T getVar(){
            return this.var ;
        }
        public void setVar(T var){
            this.var = var ;
        }
    };
    public class GetInterfaceDemo {
        @SuppressWarnings({"unchecked","deprecation"})
        public static void main(String args[]){
            Demo d = new Demo() ;
            d.setVar("小华") ;
            System.out.println("内容:" + d.getVar()) ;
        }
    }
     

    @SuppressWarning中的关键字。

    通过刚才发现Suppresswarning注释发现,里面是使用value字符串数组接收的,所以在传入注释参数的时候也可以明确指出要传给哪个变量

    package 类集;
    
    @Deprecated
    class Demo<T>{
        private T var ;
        public T getVar(){
            return this.var ;
        }
        public void setVar(T var){
            this.var = var ;
        }
    };
    public class GetInterfaceDemo {
        @SuppressWarnings(value={"unchecked","deprecation"})
        public static void main(String args[]){
            Demo d = new Demo() ;
            d.setVar("李兴华") ;
            System.out.println("内容:" + d.getVar()) ;
        }
    }
     
  • 相关阅读:
    mysql实现主从复制
    go get时候 timeout
    linux 修改/etc/profile文件之后 没有效果
    初试 laravel
    php 实现单个大文件(视频)的 断点上传
    UEditor图片左对齐右对齐 要的作用显示之后 保存之后没有效果
    docker 实现 mysql+nginx+php
    redis
    easyPoi框架的excel导入导出
    从生产计划的角度认识精益生产
  • 原文地址:https://www.cnblogs.com/alsf/p/6664212.html
Copyright © 2020-2023  润新知