猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
什么是Java中的“未检查”?
什么是Java中的“未检查”?
在查看代码时,我看到许多方法指定了注释:
@SuppressWarnings("unchecked")
这是什么意思?
蝴蝶刀刀
浏览 508
回答 3
3回答
翻阅古今
有时候Java泛型就是不允许你做你想做的事情,你需要有效地告诉编译器你在做什么将要在执行时合法。当我模拟一个通用接口时,我通常会发现这很痛苦,但是还有其他一些例子。通常值得尝试找出一种避免警告的方法,而不是压制它(Java泛型常见问题)但有时即使它是可能的话,它会使代码变形得太厉害,所以抑制警告就更整洁了。在这种情况下,总是添加一个解释性的注释!相同的泛型FAQ有几个关于这个主题的部分,从“什么是”未经检查“的警告?”-值得一读
0
0
0
杨__羊羊
它是一个注释,用于抑制关于未经检查的一般操作(而不是异常)的编译警告,例如强制转换。从本质上说,这意味着程序员不希望在编译特定代码时得到通知,因为他已经知道了这一点。您可以在这里阅读更多关于这个特定注释的内容:抑制警告此外,Oracle还在这里提供了一些关于注释使用的教程文档:注解就像他们说的,“当与泛型出现之前编写的遗留代码(在题为泛型的课程中讨论)进行接口时,可能会出现‘未检查’警告。”
0
0
0
泛舟湖上清波郎朗
这也可能意味着当前的Java类型系统版本对您的情况还不够好。有几个JSR命题/hack来修复这个问题:输入令牌,超级代币、CAST()类。如果您确实需要这种抑制,请尽量缩小它(例如,不要将它放在类本身或长方法上)。例如:public List<String> getALegacyListReversed() { @SuppressWarnings("unchecked") List<String> list = (List<String>)legacyLibrary.getStringList(); Collections.reverse(list); return list;}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续