2013-09-24 14 views
6

Đây là một lỗi lạ tôi đang nhận được ngày hôm nay khi tôi cố gắng thực hiện một bản đồ như dưới đây.Loại HashMap không phải là chung; nó không thể được tham số hóa với các đối số <String, Integer>

Map<String, Integer> cache = new HashMap<String, Integer>(); 

Tôi sử dụng JDK 1,7 và không chắc chắn lý do tại sao lỗi này đã được sắp tới và thay đổi dòng trên bằng cách thêm dàn diễn viên loại bỏ các lỗi. Tôi đã xem các bài viết liên quan trong stackoverflow trước khi đăng câu hỏi này có vẻ là vấn đề lạ.

Map<String, Integer> cache = (Map<String, Integer>) new HashMap(); 
+10

Bạn có chắc chắn cả hai 'Bản đồ' và' HashMap' đến từ gói 'java.util' trong mã của bạn? –

+0

@Shane - Lỗi là gì? Bạn đang sử dụng bất kỳ IDE như eclipse? –

+3

Bạn có khai báo lớp 'HashMap' không chung của riêng mình ở bất kỳ đâu không? Vui lòng cung cấp một chương trình ngắn nhưng * hoàn chỉnh để trình bày sự cố. –

Trả lời

20

Kiểm tra bạn đang thực sự sử dụng java.util.HashMapjava.util.Map trong nhập khẩu của bạn.

2

Tôi chắc chắn rằng bạn đang nhập sai HashMap. Bạn phải sử dụng các gói java.util cho mã bạn đã trình bày ở đó.

Chúng tôi không thể trợ giúp thêm cho bạn mà không thấy các báo cáo nhập của bạn.

-1

Tôi đã làm điều gì đó thực sự ngu ngốc để nhận lỗi này. Bạn có thể kiểm tra. Tôi đặt tên cho lớp "HashMap" của tôi là lol. Bạn có thể kiểm tra điều đó.

+0

lol cùng ở đây hehe –

4

Tôi cũng đã trải qua những lỗi tương tự nhưng nó đã được giải quyết chỉ bằng cách thay đổi một số tính chất của dự án:

  • Nhấp chuột phải vào dự án của bạn
  • Bấm vào Properties
  • Chọn Java Build Path từ đúng bảng điều khiển phía -Tay
  • Chọn Order and Export tab
  • Bấm vào bạn JRE System Library or JDK Library
  • Bấm vào Up nút và di chuyển nó đến vị trí đầu tiên
  • Bấm Ok
  • sạch & xây dựng dự án của bạn.

Làm lặp lại điều này cho tất cả các dự án phụ thuộc khác, nếu bạn có phụ thuộc.

Nó giải quyết được vấn đề của tôi vì trước đây các tệp Java đã chọn các thư viện và gói khác không phải từ gói JRE vì nó được đặt theo thứ tự ưu tiên cuối cùng.

+1

cảm ơn nó đã giúp tôi rất nhiều – user1

0

Nếu không có giải pháp nào ở trên hoạt động, lý do duy nhất bạn có thể gặp phải lỗi này là vì bạn có thể đã đặt tên class_name tương tự như một lớp đã tồn tại trong thư viện util hoặc lang.

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