Đây là loại một theo dõi câu hỏi về cuộc thảo luận:Java 7 kim cương hoạt động trong lời gọi phương thức
Why doesn't the diamond operator work within a addAll() call in Java 7?
Từ Hướng dẫn Java,
http://docs.oracle.com/javase/tutorial/java/generics/gentypeinference.html
Lưu ý rằng kim cương thường hoạt động trong các cuộc gọi phương thức; tuy nhiên, để rõ ràng hơn, bạn nên sử dụng kim cương chủ yếu để khởi tạo biến mà nó được khai báo là
Vì vậy, tôi hơi bối rối về dòng đầu tiên. Khi hiện hoạt động của kim cương trong các cuộc gọi phương thức?
Giải thích một chút về cách hoạt động của nhà điều hành kim cương tại đây:
Và từ đó, tôi đã cố gắng điều sau đây, trong đó hoạt động tốt:
Cho rằng tôi có:
private static class Box<T>{
public Box(T t){}
}
static void f(Box<Integer> box){}
một cuộc gọi như sau biên dịch tốt:
f(new Box<>(new Integer(10)));
Các tham số kiểu trong việc gọi hàm tạo trong lời gọi phương thức của f()
ở trên được suy ra từ đối số cho hàm tạo (tức là Integer
).
Vì vậy, là thế này có nghĩa là gì khi các hướng dẫn nói
Lưu ý rằng kim cương thường làm việc trong phương pháp gọi
Nếu không, bất cứ ai loại, đủ có thể cung cấp một ví dụ nơi kim cương công trình trong cuộc gọi phương thức?
@gurung một lỗi đánh máy. Trường hợp bị cắt và dán không hợp lệ: ( –