use*_*125 13 java android android-studio
任何人都可以向我解释@SuppressWarnings和之间的区别@SuppressLint吗?什么时候应该使用另一个?
我已阅读文档,但仍然没有得到差异.使用示例/示例代码进行解释将非常感激.谢谢.
kri*_*son 11
实际上有两个 lints:一个属于编译器,因此是特定于Java的,一个属于Google并且是特定于Android的.
如果您的警告是关于Java中并非特定于Android的某些内容,那么它会受到抑制@SuppressWarnings,如果它是特定于Android的,则会被抑制@SuppressLint.
此处列出了棉绒警告:http://tools.android.com/tips/lint-checks
因此,假设您有关于缺少权限的警告,并且警告说明开始于"此检查会扫描您的代码和库,并查看正在使用的API,并根据访问这些API所需的权限集进行检查." 在上面链接的lint警告页面中,我们发现:
MissingPermission
摘要:缺少权限
优先级:9/10严重性:错误类别:正确性
此检查会扫描您的代码和库,并查看正在使用的API,并根据访问这些API所需的权限集进行检查.如果在运行时调用使用这些API的代码,则程序将崩溃.
此外,对于可撤销的权限(使用targetSdkVersion 23),如果用户在运行时拒绝许可请求,则还必须准备客户端代码以处理抛出异常的调用.
所以为了抑制这个,我们把这个注释放在代码上:
@SuppressLint("MissingPermission")
Run Code Online (Sandbox Code Playgroud)
假设我们发现了这个警告:
"未经检查的强制转换:'java.lang.Object'为'java.lang.Integer'......"
如果您在Android Studio的悬停弹出窗口中阅读此内容,则More...最后会有一个链接.当您单击该More...链接时,文本会展开,您会在底部找到它:
"提示:传递-Xlint:取消选中javac来获取更多细节."
这告诉您在注释中使用"unchecked",如下所示:
@SuppressWarnings("unchecked")
Run Code Online (Sandbox Code Playgroud)
有关编译器警告的列表,请运行javac -X:
C:\>javac -X
-Xlint Enable recommended warnings
-Xlint:{all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs,-auxiliaryclass,-cast,-classfile,-deprecation,-dep-ann,-divzero,-empty,-fallthrough,-finally,-options,-overloads,-overrides,-path,-processing,-rawtypes,-serial,-static,-try,-unchecked,-varargs,none} Enable or disable specific warnings
.
.
.
Run Code Online (Sandbox Code Playgroud)
这些是您可以使用的值@SuppressWarnings.
| 归档时间: |
|
| 查看次数: |
3035 次 |
| 最近记录: |