363 接口组成更新概述
【回顾】接口的组成】
- 常量,public static final variableName;
- 抽象方法,public asstract methodName();
- 默认方法(Java8之后)
- 静态方法(Java8之后)
- 私有方法(Java9之后)
【idea操作思路】
打开idea,按ctrl n,输入java.util.list(这是一个接口),确定
alt 7调出structure窗口
跳转of方法,可变类型参数
static <E> List<E> of(E... elements) {
switch (elements.length) { // implicit null check of elements
case 0:
@SuppressWarnings("unchecked")
var list = (List<E>) ImmutableCollections.EMPTY_LIST;
return list;
case 1:
return new ImmutableCollections.List12<>(elements[0]);
case 2:
return new ImmutableCollections.List12<>(elements[0], elements[1]);
default:
return ImmutableCollections.listFromArray(elements);
}
}
这是一个stati方法,而且有方法体。of方法位于接口中,但它是static的,且有方法体,说明这是具体的方法
又如
default Spliterator<E> spliterator() {
if (this instanceof RandomAccess) {
return new AbstractList.RandomAccessSpliterator<>(this);
} else {
return Spliterators.spliterator(this, Spliterator.ORDERED);
}
}
default是默认