Tôi đã thử tay trên vectơ và viết một mã đơn giản để truy cập các phần tử của nó thông qua liệt kê.Tôi nhận ngoại lệ ClassCast khi tôi liệt kê vectơ với tham số kiểu chuỗi, nhưng không có ngoại lệ nào với Integer là tham số kiểu
Vector v = new Vector();
v.add("Some String");
v.add(10);
Enumeration e = v.elements();
while(e.hasMoreElements()) System.out.println(e.nextElement());
Làm việc với các loại thô tạo ra kết quả như mong đợi (in các phần tử). Nhưng, khi tôi sử dụng kiểu tổng hợp của điều tra viên, nó trở nên phức tạp.
Với String như kiểu tham số:
Vector v = new Vector();
v.add("Some String");
v.add(10);
Enumeration<String> e = v.elements();
while(e.hasMoreElements()) System.out.println(e.nextElement());
Output:
Một số chuỗi
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer không thể là truyền đến java.lang.String
Với số nguyên là loại tham số:
Vector v = new Vector();
v.add("Some String");
v.add(10);
Enumeration<Integer> e = v.elements();
while(e.hasMoreElements()) System.out.println(e.nextElement());
Output:
Một số chuỗi
gì đang xảy ra ở đây? Không phải cả hai trường hợp đều có ngoại lệ ClassCast?
'Liệt kê <> e = v.elements();' Biên dịch này như thế nào? –
@KonstantinYovkov Tôi nghĩ đó là lỗi đánh máy và OP có nghĩa là 'Liệt kê'. –
Mena
Bạn đang sử dụng loại nguyên mẫu 'Vector': http://stackoverflow.com/a/2770692/1608594 Bạn không nên sử dụng các loại thô. – carbolymer