小编Wol*_*0pl的帖子

检查Object是否是List <Object>的实例

我有一个Object有时包含一个List<Object>.我想检查它instanceof,如果是,然后添加一些元素.

void add(Object toAdd) {
    Object obj = getValue();
    if (obj instanceof List<?>) {
        List<?> list = obj;
        if (list instanceof List<Object>) {    // Error
            ((List<Object>) list).add(toAdd);
        } else {
            List<Object> newList = new ArrayList<Object>(list);
            newList.add(toAdd);
            setValue(newList);
        }
        return;
    }
    throw new SomeException();
}
Run Code Online (Sandbox Code Playgroud)

它说我无法检查是否是instanceof List<Object>因为java不关心并删除了类型<>.这是否意味着我每次都必须创建新的ArrayList?或者有没有办法检查,例如.用反射?

java generics list

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

generics ×1

java ×1

list ×1