美文网首页
Annotation注解

Annotation注解

作者: 曾梦想仗剑天涯 | 来源:发表于2020-10-28 16:28 被阅读0次

    Annotation简介

    • Annotation是从JDK1.5之后提出的一个新的开发技术结构,利用Annotation可以有效的减少程序配置的代码,并且可以利用Annotation进行一些结构化的定义;
    • Annotation是一种以注解的形式实现的程序开发;

    如果想要清除Annotation的产生意义,则必须了解一下程序开发结构的历史,从历史上来讲程序的开发一共分为了三个过程:

        过程一:在程序定义的时候将所有可能使用到的资源全部定义在程序代码之中。

    • 如果此时服务器的相关地址发生了改变,那么对于程序而言就需要进行源代码的修改,维护是由开发人员来完成,这样的做法明显是不方便的;

        过程二:引入配置文件,在配置文件中定义全部要使用的服务器资源

    • 在配置项不多的情况下,此类配置非常好用,并且十分的简单,但是如果这个时候所有的项目都是采用这种结构开发,就可能出现一种情况:配置文件过多;
    • 所有的操作都需要通过配置文件完成,对于开发的难度提升了;

        过程三:将配置信息重新写回到程序里面,利用一些特殊的标记与程序代码进行分离,这就是注解的作用,也就是Annotation提出的基本依据

    • 如果全部使用注解开发,难度太高,配置文件有好处也有缺点,所有现在的开发基本是都是配置文件+注解的形式完成的;
    • Java中几个基本注解:@Override、@Deprecated、@SuppressWarnings

    准确的覆写:@Override

    • 当子类继承一个父类之后,如果发现父类中的某些方法不足的时候,往往会采用覆写的形式来对方法进行功能的扩充
    class Channel {
      public void connect() {
        System.out.println("********** Channel ************");
      }
    }
    class DatabaseChannel extends Channel {
      @Override    //明确表示该方法是一个覆写来的方法
      public void connect() {
        System.out.println("子类定义的通道连接操作");
      }
    }
    public class JavaDemo {
      public static void main(String args []) {
        new DatabaseChannel().connect();
      }
    }
    

    过期操作:@Deprecated

    • 所谓的过期操作指的是在一个软件项目的迭代开发之中,可能有某一个方法或者某一个类,由于在最初设计的时候考虑不周(存在缺陷),导致新版本的应用会有不适应的地方(老版本不影响),这个时候又不可能直接删除删除这些操作,那么就希望有一个过度的时间,于是可以采用过期的声明,目的是告诉新的用户这些操作不要再用了,老的用户你用就用了,这样的方法就必须利用我们的@Deprecated注解
    class Channel {
      @Deprecated
      public void connect() {
        System.out.println("********** Channel ************");
      }
      public String connection() {
        return "获取了Xxx通道连接信息";
      }
    }
    public class JavaDemo {
      public static void main(String args []) {
        new Channel().connect();
      }
    }
    

    压制警告:@SuppressWarnings

    • 以之前的过期程序为例,可以发现在进行程序编译的时候会出现一个错误的提示信息,如果不想见到这些提示信息(或者已经明确的知道了错误在哪里),那么就可以进行警告信息的压制
    class Channel {
      @Deprecated
      public void connect() {
        System.out.println("********** Channel ************");
      }
      public String connection() {
        return "获取了Xxx通道连接信息";
      }
    }
    public class JavaDemo {
      @SuppressWarnings({"deprecation"})    //做的只是让警告信息不出现
      public static void main(String args []) {
        new Channel().connect();
      }
    }
    

    相关文章

      网友评论

          本文标题:Annotation注解

          本文链接:https://www.haomeiwen.com/subject/mjhcvktx.html