2015-04-17 11 views
7

Bạn có viết chữ sau đây không?Đặt mà không có Kiểu dữ liệu được đề cập

Set<Integer> integs = new HashSet<>();

Bên <>, nó là tốt để rời khỏi nó như là trống rỗng?

+2

Có, toán tử kim cương '<>' sẽ suy ra '' làm loại chung từ loại tham chiếu. Bây giờ ở đâu trùng lặp ... – Pshemo

+0

Xem thêm http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in-java-7 – Radiodef

+1

Điều này đã được trả lời tại đây: http://stackoverflow.com/questions/8660202/what-does-mean-for-java-generics –

Trả lời

3

Từ Java 7, trình biên dịch sẽ suy ra loại dữ liệu của bộ băm mà không cần viết hai lần.

Lưu ý rằng có một số tình huống mà trình biên dịch có thể không suy ra loại, vì vậy bạn có thể gặp lỗi biên dịch cho các tình huống phức tạp hơn.

Thêm số đó here.

2

Yes nếu bạn đang sử dụng java 7 hoặc cao hơn như mô tả trong documentation

Bạn có thể thay thế các đối số loại cần thiết để gọi constructor của một lớp generic với một tập rỗng của các tham số kiểu (<>) miễn là trình biên dịch có thể suy ra các đối số kiểu từ ngữ cảnh. Cặp dấu ngoặc nhọn này được gọi chính thức là kim cương.

Các vấn đề liên quan