Android@SuppressWarnings在语句级别,而不是方法级别
TL;DR:Android的Android@SuppressWarnings在语句级别,而不是方法级别,android,android-gradle-plugin,android-lint,deprecation-warning,Android,Android Gradle Plugin,Android Lint,Deprecation Warning,TL;DR:Android的@SuppressWarnings(“弃用”)或类似功能能否应用于单个语句,而不是整个方法 我有一个方法myMethod,它使用了不推荐使用的方法ImageView.setAlpha(): 为了避免在Jelly Bean和后续版本中使用不推荐的方法,同时提供向后兼容性,方法myMethod可以重写如下: public void myMethod(ImageView icon) { if (android.os.Build.VERSION.SDK_INT
@SuppressWarnings(“弃用”)
或类似功能能否应用于单个语句,而不是整个方法
我有一个方法myMethod
,它使用了不推荐使用的方法ImageView.setAlpha()
:
为了避免在Jelly Bean和后续版本中使用不推荐的方法,同时提供向后兼容性,方法myMethod
可以重写如下:
public void myMethod(ImageView icon) {
if (android.os.Build.VERSION.SDK_INT
>= android.os.Build.VERSION_CODES.JELLY_BEAN)
icon.setImageAlpha(0xFF);
else
icon.setAlpha(0xFF);
}
此外,Gradle/Lint生成的命令行警告可以通过在方法myMethod
前面加上@SuppressWarnings(“弃用”)
来抑制。但是,这会抑制由方法myMethod
生成的所有不推荐的警告,而不仅仅是由语句icon.setAlpha(0xFF)
生成的单个警告
我是否可以抑制语句
icon.setAlpha(0xFF)
生成的单个弃用警告,而不是抑制方法myMethod
生成的所有弃用警告?如果使用Android Studio,可以按如下方式实现:
//noinspection deprecation
icon.setAlpha(0xFF);
供您将来参考:在Android Studio中可以轻松生成正确的格式,如下所示:
public void myMethod(ImageView icon) {
if (android.os.Build.VERSION.SDK_INT
>= android.os.Build.VERSION_CODES.JELLY_BEAN)
icon.setImageAlpha(0xFF);
else
icon.setAlpha(0xFF);
}
弃用API用法
选项Suppress
- 不幸的是,没有直接的方法在方法体级别实现它。因为您已经在单个方法中移动了不推荐使用的部分,并用
标记了它,所以这应该是您能够实现的最好方法@SuppressWarnings
- 有些帖子声称通过使用完全限定的类名而不是
解决了这个问题。但是这个问题似乎已经在Java9中解决了。由于目前流行的android java版本是8.x,这在短期内应该会有所帮助。有关更多详细信息,请参阅此import
警告:[弃用]ImageView中的setAlpha(int)已弃用
。也许我需要做些别的事情,因为我是从命令行工作的,而不是从IDE(例如androidstudio)工作的。