Tôi có một dự án Java 1.6 Android. Tôi có một mã bên thứ ba mà không biên dịch:Làm thế nào để sửa chữa toán tử '<>' không được phép cho cấp nguồn dưới 1,7 trong 1,6?
import org.springframework.http.HttpEntity;
//...
HttpHeaders requestHeaders = new HttpHeaders();
//...
new HttpEntity<>(requestHeaders);
Nó nói: '<>' điều hành không được phép cho cấp nguồn dưới 1,7
Tôi không muốn chuyển sang dự án của tôi để 1.7. Tôi đã thay đổi dòng đó thành
new HttpEntity<Object>(requestHeaders);
và bây giờ nó biên dịch tốt.
Nhưng bản sửa lỗi của tôi có đúng không? Java 1.7 làm gì với các dấu ngoặc rỗng?
Cập nhật
Đó đối tượng mới được thông qua với chức năng chấp nhận HttpEntity<?>
tranh cãi. Tôi hiểu ý tưởng của suy luận kiểu, nhưng tôi không hiểu những gì hiện 1.7 trình biên dịch suy ra từ dòng mã nhất định.
http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html –
đối tượng mới được chỉ định ở đâu? Biến đó được định nghĩa như thế nào? – sidgate
@ZouZou Cảm ơn, bit tôi vẫn không hiểu những gì hiện 1.7 trình biên dịch suy ra từ dòng đó. – Nick