TL; DR:Android的@SuppressWarnings("deprecation")
或类似内容可以应用于单个语句,而不是整个方法吗?
我有一个使用弃用方法myMethod
的方法ImageView.setAlpha()
:
public void myMethod(ImageView icon) { icon.setAlpha(0xFF); }
为避免在 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);
}
此外,可以通过将方法myMethod
添加到@SuppressWarnings("deprecation")
来抑制Gradle / Lint生成的命令行警告。但是,这会抑制方法myMethod
生成的所有弃用警告,而不仅仅是语句icon.setAlpha(0xFF)
生成的单个警告。
我可以取消声明icon.setAlpha(0xFF)
生成的单个弃用警告,而不是取消方法myMethod
生成的所有弃用警告吗?
答案 0 :(得分:3)
如果您使用的是Android Studio,则可以按如下方式实现:
//noinspection deprecation
icon.setAlpha(0xFF);
供将来参考:可以在Android-Studio中轻松生成正确的格式,如下所示:
Deprecated API usage
选项Suppress for statement
以下图片显示了该过程:
在您的情况下,因为您没有使用IDE:
@SuppressWarnings
标记,因此这应该是您可以实现的最佳方式。import
来解决它。但看起来这个问题已在Java 9中得到修复。因为当前流行的java版本的android是8.x,这应该在短期内有所帮助。您可以参考此SO了解更多详情