Node的ArrayList是否包含非Node类型?

two*_*ate 0 java

Node的ArrayList是否可以包含非Node类型?

使用类型转换是否有一种非常脏的方法?

Dra*_*mon 5

是的,但如果您尝试访问非节点元素,就像它是节点一样,您将获得类强制转换异常.泛型在(for)运行时被丢弃.

例如:

import java.util.*;
import java.awt.Rectangle;

public class test {
    public static void main(String args[]) {
        List<Rectangle> list = new ArrayList<Rectangle>();
        /* Evil hack */
        List lst = (List)list;

        /* Works */
        lst.add("Test");

        /* Works, and prints "Test" */
        for(Object o: lst) {
            System.err.println(o);
        }

        /* Dies horribly due to implicitly casting "Test" to a Rectangle */
        for(Rectangle r: list) {
            System.err.println(r);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)