Lots of static methods in an interface

Zhong Yu zhong.j.yu at gmail.com
Tue Sep 10 09:17:01 PDT 2013

It seems that the standard lib is settling on the convention of
putting static methods directly in the relevant interface, e.g.
Comparator, instead of in another companion class, e.g. Comparators. I
was against it before but now I think it is great - no need to direct
users to another place to look for related methods.

However I still find the javadoc landing page very messy:


with static/abstract/default methods mixed together indiscriminately.
Sure there are tabs, but there is no reason to give a bad first
impression to users. Static/abstract/default methods are so different,
does anybody really want an alphabetic index containing all of them?
Even if they do, can't we move that index page to a less important
tab? Wouldn't it be much more readable if the landing page shows all
methods in different groups?

Abstract Methods
int     compare(T o1, T o2)
boolean     equals(Object obj)

Default Methods
Comparator<T>     reversed()
Comparator<T>     thenComparing(...)

Static Methods
Comparator<T>     comparing(...)
Comparator<T>     naturalOrder()

Zhong Yu

More information about the lambda-dev mailing list