Android中常见的注解

本文介绍了Android开发中常见的四个注解:@TargetApi、@RequiresApi、@suppressLint和@SuppressWarnings的功能与用途。这些注解有助于解决高版本API在低版本SDK上的兼容性问题,并帮助开发者有效管理代码警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的几个注解

1、@TargetApi

2、@RequiresApi

3、@suppressLint

4、@SuppressWarnings

我们在开发Android中常常会遇到代码提示异常,使用快捷键操作后,开发工具会自动给我们的代码添加一些注解,那么你真的了解这些注解吗?下面我们对每个注解的解释:

@TargetApi(Build.VERSION_CODES.*)或者@TargetApi(*)

Lint会按照API版本M以上扫描代码,而不是project中指定的minSDKVersion,可以使得高版本Api在低版本SDK上Lint不报错。

如果只加这个注解,表明这段代码只能在指定版本及以上的系统上运行,如果你运行在23以下的系统上,会出现异常!因为已经开发工具已经给予警告了,只是我们加了注解,警告被忽略了。

@RequiresApi(api = *)

从官方的表述可以看出更推荐使用RequiresApi替换TargetApi。

该注解表示注解目标只能够在指定的版本API及以上运行,消除高版本Api在低版本SDK上的报错,作用上和TargetApi相同,只是在词面上更清楚表达了这是一个建议,而不仅仅是为了消除高版本Api在低版本SDK上的报错。

 

@SuppressLint("NewApi")

一般不建议使用!最直接暴力屏蔽指定名称的报错,NewApi:Calling new methods on older versions。

在XML中类似的做法有:

<!--忽略XML中的两个警告。-->

tools:ignore="ScrollViewCount,UselessParent"

相比于@TargetApi指定了版本号,SuppressLint是一律屏蔽。当然还可以指定任何其他Lint定义好的错误名称。在settings中查找Inspections可以找到预先定义好的所有Error、Warning。对于多个错误,使用逗号隔开。

@SuppressWarnings("")

常用取值:unchecked //未检查的转化,如集合没有指定类型

                  unused  //未使用的变量

                  resource  //有泛型未指定类型

                  path //在类路径,原文件路径中有不存在的路径

                  deprecation   //使用了某些不赞成使用的类和方法

                  fallthrough   //switch语句执行到底没有break关键字

                  serial  //某类实现Serializable 但是没有定义serialVersionUID 这个需要但是不必须的字段 

                  rawtypes   //没有传递带有泛型的参数

                  all   //全部类型的警告 

注解可以使用在许多地方,如:class、method、statement,分别对应由大到小不同的作用域类、方法、语句,作用域范围越大,那么性能损耗自然越大。

 

以上是针对我们日常开发中常用的注解的解释,特记录供自己学习!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值