title: Java 8: When the use of Interface static methods becomes a bad practice?
body: <p>From Java 8, we can have default methods and static methods in the interfaces.</p>
  <p>The constant interface pattern is a poor use of interfaces known as <i>Constant Interface Antipattern</i>.</p>
  <p><a href="http://www.oracle.com/technetwork/java/effectivejava-136174.html" rel="noreferrer">&gt;Effective Java</a>, Item 17 :</p>
  <blockquote>
  <p><strong>The constant interface pattern is a poor use of interfaces</strong>. That a class uses some constants internally is an implementation detail.
  Implementing a constant interface causes this implementation detail to
  leak into the class's exported API. It is of no consequence to the
  users of a class that the class implements a constant interface. In
  fact, it may even confuse them. Worse, it represents a commitment: if
  in a future release the class is modified so that it no longer needs
  to use the constants, it still must implement the interface to ensure
  binary compatibility. If a nonfinal class implements a constant
  interface, all of its subclasses will have their namespaces polluted
  by the constants in the interface.</p>
  <p>There are several constant interfaces in the java platform libraries,
  such as java.io.ObjectStreamConstants. These interfaces should be
  regarded as anomalies and should not be emulated.</p>
  </blockquote>
  <p>If the use of constant interfaces is a bad practice,  when the use of interface static methods could becomes a bad practice ?</p>