什么对象具有clear方法:主流开发对象清单
什么对象具有clear方法:Java里所有实现Collection、Map接口的集合实例,JavaScript里ES6的Map、Set实例,以及控制台console对象都自带clear方法;普通数组、普通字面量对象没有原生clear,调用会直接报错,只读集合调用clear还会抛出不支持操作异常,仅可变集合可正常执行清空操作。
Java中带clear方法的对象
Java的java.util.Collection接口强制定义clear方法,所有实现类都自带该方法,依据JavaSE24官方接口文档,这属于集合的可选操作。
| 接口类型 | 常用实现类 | 能否调用clear |
|---|---|---|
| Collection(List) | ArrayList、LinkedList、ArrayDeque | 可变实例可以调用 |
| Collection(Set) | HashSet、TreeSet、LinkedHashSet | 可变实例可以调用 |
| Map | HashMap、TreeMap、LinkedHashMap | 可变实例可以调用 |
| 只读集合 | Collections.unmodifiableList生成对象 | 不可以调用,会抛出异常 |
你可以直接判断:只要对象是可变集合实例,就能调用clear清空全部内容,集合容量不会被修改,仅清空内部元素。
JavaScript中带clear方法的对象
JS原生只有三类对象自带clear方法,普通Array与{}字面量对象没有这个方法,不要混用。
1.Set实例:newSet()生成的集合,可以清空所有成员,执行后size变为0。
2.Map实例:newMap()生成的键值对容器,一键清空所有键值对。
3.console对象:console.clear()仅在终端TTY环境生效,网页控制台与非终端环境不会执行清空动作。
容易踩坑的边界条件
只读集合不能调用clear,这是最常见报错场景。
如果你把集合用Collections.unmodifiableList包装之后,再执行clear代码,程序会直接抛出UnsupportedOperationException,这类只读对象不支持清空操作。
JS里如果你给普通数组调用clear,会提示方法不存在,只能用arr.length=0来实现清空效果,不能直接调用clear。
快速判断小技巧
先看类型:集合容器类优先检查;再看读写属性:只读容器一律没有可用的clear方法。

想要了解更多关于什么对象具有clear方法的文章欢迎访问:百科