我在一项声明抽象类的练习中遇到了这段代码:
import java.util.ArrayList;
public abstract class Box {
public abstract void add(Item item);
public void add(ArrayList<Item> items) {
for (Item item : items) {
Box.this.add(item);
}
}
public abstract boolean isInBox(Item item);
}
我不理解add(ArrayList<Item> item)
方法的作用。我知道它会遍历一个名为items的ArrayList
,但是Box.this.add(item)
的作用是什么呢?有人能解释一下吗?
this.add(item)
或只有add(item)
是相同的。开发人员只是决定对方法调用进行超出通常的限定。 - ernest_kadd(ArrayList<Item> items)
被命名为addAll(List<T> items)
,那么它将会更好得多。1)避免混淆add()和addAll()... 2)使用接口List而不是某些实现类型ArrayList...使Box类本身成为通用的。 - GhostCatBox
可以是一个接口。 - MC Emperor