gpt4 book ai didi

java - 为什么在 java.util.Collections 中声明静态 java.util.Collections.fill() 方法而不是在 java.util.AbstractList 中声明实例方法?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:24:00 25 4
gpt4 key购买 nike

java.util.Collections中,有一个方法:

public static <T> void fill(List<? super T> list, T obj)

用第二个参数指定的对象填充第一个参数指定的List。要调用这个方法,一次可以这样写,例如:

java.util.List<String> l;
//...
java.util.Collections.fill(l, "Hello");

为什么这个方法没有在 java.util.AbstractList 中声明为实例方法?如果是的话,它本来可以做成一个实例方法,这样调用它似乎更方便:

java.util.List<String> l;
//...
l.fill("Hello");

最佳答案

因为除了 AbstractList 之外,还存在其他实现接口(interface) List 的类。 Java 库中的一个示例是 CopyOnWriteArrayList ,任何人都可以自己实现。因此,通过接受 List,该方法更有用,因为它可以与这些类中的任何一个一起工作。

关于java - 为什么在 java.util.Collections 中声明静态 java.util.Collections.fill() 方法而不是在 java.util.AbstractList 中声明实例方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32742871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com