java8 allows static methods inside interfacesjava
java8 introduces a new feature called default methods that allows you to provide a default implementation for methods in an interfaceide
@SuppressWarnings({"unchecked", "rawtypes"}) default void sort(Comparator<? super E> c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterator<E> i = this.listIterator(); for (Object e : a) { i.next(); i.set((E) e); } }
public static <T extends Comparable<? super T>> Comparator<T> naturalOrder() { return (Comparator<T>) Comparators.NaturalOrderComparator.INSTANCE; }
default Stream<E> stream() { return StreamSupport.stream(spliterator(), false); }