项目中有如下代码:
<pre name="code" class="java"><span style="white-space:pre"> </span>private GeneratedMessage msg;
@SuppressWarnings("unchecked")
public <T> T getMsg() {
return (T) msg;
}
问题①@SuppressWarnings("unchecked")应该出现的场合,
SuppressWarnings是告诉编译器对批注的代码元素的内部的某些警告保持静默。
unchecked是用于执行了未检查的转换时的警告,例如当使用集合时没有使用泛型来制定集合的类型
虽然看起来@SuppressWarnings屏蔽了潜在的错误,但实际上它将提高代码安全性,因为他会提醒你,防止你对警告无动于衷。
问题②
public <T> T getMsg() {
return (T) msg;
}
这个写法在外部调用的时候就不用写强转了,这样处理是好是坏?