2011-12-13 30 views
5

Whats cách tốt nhất:Làm thế nào để khởi tạo một bộ sưu tập trong Java bằng Generics?

Set<String> myStringSet = new HashSet(); 

Hoặc

Set<String> myStringSet = new HashSet<String>(); 

Không có ở trên?

Có quan trọng không?

+0

Kiểm tra câu hỏi này và câu trả lời được chấp nhận: http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in-java-7 –

+2

Trong Java SE 7 (OUT NOW!) 'Đặt myStringSet = new HashSet <>();' –

Trả lời

5

Sau đó:

Set<String> myStringSet = new HashSet<String>(); 

Xem the Java documentation on generic types để biết thêm thông tin.

+1

Chỉ cần bắt đầu sử dụng phiên bản chưa được phân loại ... khi bạn nhận ra tất cả các phôi phiền phức bạn phải làm, bạn sẽ bắt đầu sử dụng Bộ sưu tập đã nhập ! –

3

Bạn luôn nên khởi tạo bộ sưu tập với generic loại

Set<String> myStringSet = new HashSet<String>(); 

Nếu không, bạn sẽ nhận được một cảnh báo

Type safety: The expression of type HashSet needs unchecked conversion 
to conform to Set <String>. 
0

Thứ hai là cách tốt nhất và an toàn nhất để tiến hành.

Set<String> myStringSet = new HashSet(); sẽ biên dịch và đưa ra cảnh báo ...uses unchecked or unsafe operations.. Điều này xuất hiện trong Java 5 trở lên, nếu bạn đang sử dụng các bộ sưu tập không có các bộ định kiểu chung (HashSet() thay vì HashSet<String>()).

Bỏ qua trình chỉ định loại chung sẽ vô hiệu hóa trình biên dịch để kiểm tra xem bạn có đang sử dụng số HashSet theo cách an toàn không, sử dụng Generics.

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