【发布时间】:2014-05-15 12:00:47
【问题描述】:
我有一个 Java 1.6 Android 项目。我有一个无法编译的第三方代码:
import org.springframework.http.HttpEntity;
//...
HttpHeaders requestHeaders = new HttpHeaders();
//...
new HttpEntity<>(requestHeaders);
上面写着:1.7以下的源级别不允许使用''运算符
我不想将我的项目切换到 1.7。我已将该行更改为
new HttpEntity<Object>(requestHeaders);
现在可以正常编译了。
但是我的修复正确吗? Java 1.7 对空括号做了什么?
更新
该新对象被传递给接受HttpEntity<?> 参数的函数。我理解类型推断的想法,但我不明白 1.7 编译器从给定的代码行推断什么。
【问题讨论】:
-
新对象分配到哪里?该变量是如何定义的?
-
@ZouZou 谢谢,我还是不明白 1.7 编译器从那一行推断什么。
-
@sidgate 新对象被传递给某个接受
HttpEntity<?>参数的函数。