gpt4 book ai didi

java - 向Java实现自定义add方法

转载 作者:行者123 更新时间:2023-12-01 09:06:27 26 4
gpt4 key购买 nike

我有一个包含 ArrayListLinkedList 的代码,并且希望实现一个可用于这两种情况的自定义添加方法类。

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(anotherList);

LinkedList<Integer> listTwo = new LinkedList<Integer>();
listTwo.add(newList);

我想记录 LinkedList 和 ArrayList 的每个添加方法。

我本以为实现 Java 列表接口(interface)就足够了。有推荐的方法吗?

我知道有多种方法可以解决这个问题。

最佳答案

如果您有能力将 Guava 作为依赖项包含在内,那么它有一个用于委派默认集合的现成解决方案:https://github.com/google/guava/wiki/CollectionHelpersExplained#forwarding-decorators

列出的示例与您的示例用例相匹配:

class AddLoggingList<E> extends ForwardingList<E> {
final List<E> delegate; // backing list
@Override protected List<E> delegate() {
return delegate;
}
@Override public void add(int index, E elem) {
log(index, elem);
super.add(index, elem);
}
@Override public boolean add(E elem) {
return standardAdd(elem); // implements in terms of add(int, E)
}
@Override public boolean addAll(Collection<? extends E> c) {
return standardAddAll(c); // implements in terms of add
}
}

关于java - 向Java实现自定义add方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234464/

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