2012-05-13 33 views
9

Tôi chỉ có điều này, nhưng trình biên dịch của tôi nói: Loại không phù hợp: không thể chuyển đổi từ ArrayList sang Danh sách Vì vậy, bất cứ ai có thể cho tôi biết vấn đề? Tôi đang sử dụng Elipse Java EE IDE.Loại không phù hợp: không thể chuyển đổi từ ArrayList thành Danh sách

import java.awt.List; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.Iterator; 


public class Main { 
    public static void main(String[] args) { 
     List list = new ArrayList(); 


    } 
} 

Trả lời

21

nhập khẩu không đúng, nó phải được java.util.List.

+0

Vâng bạn có quyền, cảm ơn! –

3

Bạn cần nhập java.util.List thay vì java.awt.List.

Bạn cũng có thể muốn sử dụng thông số loại thay vì loại thô. Ví dụ, nếu danh sách sắp giữ String giá trị:

List<String> list = new ArrayList<>(); 

hay, trước khi Java 7:

List<String> list = new ArrayList<String>(); 
+0

Thực ra bạn có một đối số kiểu dư thừa bằng cách chỉ định Chuỗi hai lần. Vì bạn có Danh sách , bạn có thể theo dõi nó với ArrayList <>() – Gabe

+0

@Gabe - Đó là sự thật; nhưng trước Java 7, chuỗi thứ hai 'String' là bắt buộc. Thói quen cũ khó thay đổi. :) –

2

java.util.ArrayList kéo dài java.util.List, không java.awt.List. Bạn đang import lớp sai:

import java.awt.List; 

vs

import java.util.List; 
5

Bạn đã nhập java.awt.List, đây là điều khiển danh sách trong gói AWT, thay vì java.util.List, là lớp bộ sưu tập đại diện cho danh sách các phần tử. Do đó, Java cho rằng bạn đang chuyển đổi từ một danh sách các giá trị mảng logic thành một widget, điều này không có ý nghĩa gì cả.

Thay đổi dòng nhập khẩu để

import java.util.List; 

nên sửa lỗi này, như sẽ viết

java.util.List list = new ArrayList(); 

để chỉ ra một cách rõ ràng rằng bạn muốn có một bộ sưu tập.

Điều đó nói rằng, bạn cũng nên sử dụng Generics ở đây. Việc sử dụng các loại bộ sưu tập thô từ lâu đã không còn được dùng nữa. Câu trả lời hay nhất là viết một cái gì đó như là

List<T> list = new ArrayList<T>(); 

Hy vọng điều này sẽ hữu ích!

1

Được người khác nói là lỗi nhập của nó. Vì bạn đang sử dụng Eclipse EDE nếu có lỗi giữ con trỏ ở vị trí đó và nhấn Ctrl + 1, nó sẽ hiển thị các đề xuất cho bạn có thể giúp bạn khắc phục lỗi.

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