Annotation注解 - Java基础知识 9

目录

Annotation简介

准确覆写@Override

过期操作@Deprecated

压制警告@SuppressWarnings


学习笔记

Annotation简介

Annotation注解是Jdk1.5之后提出的新的开发技术结构,利用Annotation可以减少程序配置的代码,并且可以使用annotation进行一些结构化的定义。Annotation是以一种注解的方式,实现程序开发。

如果要想清楚Annotation的产生意义,则必须了解程序开发结构的历史,历史上程序的开发义工分为三个过程:

过程一:在程序定义的时候将所有可能使用到的资源,全部定义在程序代码之中;如果此时服务器相关的地址发生改变,那么需要对程序进行源代码的一种修改,需要开发人员来完成;

过程二:引入配置文件,配置文件中包含所需要的服务器资源。在配置项不多的情况下,好用操作简单。但是所有的项目都采用这种形式开发,就会出现一种情况:配置文件暴多。所有的操作都通过配置文件完成,开发难度提升。

过程三:将配置信息重新写回到程序之中,利用一些特殊的标记与程序代码进行分离,这就是注解的作用,也是Annotation提出的基本依据。如果全部都是用注解开发难度太高,配置文件有好处也有缺点,现在的开发围绕:配置文件+注解。

本次讲解的注解是Java中提供的几个基本的注解:@Override、@Deprecated、@SuppressWarnings 。

准确覆写@Override

当子类继承某个父类之后,当发现父类方法功能不足的时候,往往通过使用覆写的形式,对方法功能进行扩充。下面首先观察覆写操作。

开发之中经常出现两个问题:

  • 虽然明确继承父类并且进行方法的覆写,但是有可能由于疏忽忘记写extends.

  • 在进行方法覆写的时候,单词出错,程序不会出现错误信息

为了避免这种问题的出现,可以在明确覆写的方法上追加注解

范例:追加注解

class Channel{
	public void connect(){
		System.out.println("*******Channel*********") ;
	}
}
class DatabaseChannel extends Channel{
	@Override //明确表示该方法覆写来的方法
	public void connect(){
		System.out.println("*******DatabaseChannel*********") ;
	}
}

public class StringDemo{
	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 StringDemo{
	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 StringDemo{
	@SuppressWarnings({"deprecation"}) 
	public static void main(String[] args){
		new Channel().connect() ;

	}
}

让警告信息不出现。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值