ADDITIONAL SYSTEM INFORMATION :
linux 64 bit
A DESCRIPTION OF THE PROBLEM :
Interfaces can have default implementation. javap -p ignores this modifier while dumping out interfaces.
Example:
javap -p "java.util.Comparator"
Compiled from "Comparator.java"
public interface java.util.Comparator<T> {
public abstract int compare(T, T);
public abstract boolean equals(java.lang.Object);
public java.util.Comparator<T> reversed();
public java.util.Comparator<T> thenComparing(java.util.Comparator<? super T>);
public <U> java.util.Comparator<T> thenComparing(java.util.function.Function<? super T, ? extends U>, java.util.Comparator<? super U>);
public <U extends java.lang.Comparable<? super U>> java.util.Comparator<T> thenComparing(java.util.function.Function<? super T, ? extends U>);
public java.util.Comparator<T> thenComparingInt(java.util.function.ToIntFunction<? super T>);
public java.util.Comparator<T> thenComparingLong(java.util.function.ToLongFunction<? super T>);
public java.util.Comparator<T> thenComparingDouble(java.util.function.ToDoubleFunction<? super T>);
public static <T extends java.lang.Comparable<? super T>> java.util.Comparator<T> reverseOrder();
public static <T extends java.lang.Comparable<? super T>> java.util.Comparator<T> naturalOrder();
public static <T> java.util.Comparator<T> nullsFirst(java.util.Comparator<? super T>);
public static <T> java.util.Comparator<T> nullsLast(java.util.Comparator<? super T>);
public static <T, U> java.util.Comparator<T> comparing(java.util.function.Function<? super T, ? extends U>, java.util.Comparator<? super U>);
public static <T, U extends java.lang.Comparable<? super U>> java.util.Comparator<T> comparing(java.util.function.Function<? super T, ? extends U>);
public static <T> java.util.Comparator<T> comparingInt(java.util.function.ToIntFunction<? super T>);
public static <T> java.util.Comparator<T> comparingLong(java.util.function.ToLongFunction<? super T>);
public static <T> java.util.Comparator<T> comparingDouble(java.util.function.ToDoubleFunction<? super T>);
private static java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
private static int lambda$comparingDouble$8dcf42ea$1(java.util.function.ToDoubleFunction, java.lang.Object, java.lang.Object);
private static int lambda$comparingLong$6043328a$1(java.util.function.ToLongFunction, java.lang.Object, java.lang.Object);
private static int lambda$comparingInt$7b0bb60$1(java.util.function.ToIntFunction, java.lang.Object, java.lang.Object);
private static int lambda$comparing$77a9974f$1(java.util.function.Function, java.lang.Object, java.lang.Object);
private static int lambda$comparing$ea9a8b3a$1(java.util.Comparator, java.util.function.Function, java.lang.Object, java.lang.Object);
private int lambda$thenComparing$36697e65$1(java.util.Comparator, java.lang.Object, java.lang.Object);
}