在java 1.8中的接口中添加静态方法

我们知道在java 1.8接口中允许使用静态方法,我已经看到了一些答案,比如jdk 1 8接口中定义的静态方法,为什么他们需要这样做
但我不满意。
此外,我认为它可能会导致以下问题:

public interface MyInterface{ public static void myMethod(); } class MyClass{ MyInterface.myMethod(); // since myMethod is static but a huge error is waiting for us here ? } 

但我仍然认为有一种方法可以解决这个问题,因为这是由专业人士添加 ,所以任何人都可以解释一下oracle如何解决这个问题以及需要添加它的是什么?
谢谢你。


我没有使用java 1.8所以我从来不知道java中的静态方法需要定义而不仅仅是声明 ,我总是把接口看作是一个纯抽象类我认为这就是为什么定义一个方法的想法对我来说似乎很奇怪。 谢谢您的帮助 ! 。

谈论“需要添加什么”静态方法:

引自http://www.informit.com/articles/article.aspx?p=2191423

在Java 8使得在接口中声明静态方法成为可能之前,通常的做法是将这些方法放在伴随实用程序类中。 例如,java.util.Collections类是java.util.Collection接口的伴侣,并声明了在相关Java Collections Framework接口中更合适的静态方法。 您不再需要提供自己的随播实用程序类。 相反,您可以将静态方法放在适当的接口中,这是一种培养的好习惯。

接口中的静态方法也适用于提供实用程序方法,如空检查,集合排序等。重要的是,它通过拒绝实现类来覆盖它来提供安全性。

这里没有问题,静态方法由类拥有,而不是它的成员,所以这里唯一的错误就是你没有定义方法itselt(刚刚声明它,静态方法不允许)。