为什么Java 8支持静态方法?在下面的代码中,main方法中两行代码有什么区别?
package sample;
public class A {
public static void doSomething()
{
System.out.println("Make A do something!");
}
}
public interface I {
public static void doSomething()
{
System.out.println("Make I do something!");
}
}
public class B {
public static void main(String[] args) {
A.doSomething(); //difference between this
I.doSomething(); //and this
}
}
就像我们上面可以看到的那样,在B中甚至没有实现I。如果我们可以在另一个类中编写相同的静态方法并调用它,那么在接口中拥有静态方法会有什么用处呢?除了模块化之外,它是否被引入了其他用途? 而通过模块化,我指的是以下内容:
public interface Singable {
public void sing();
public static String getDefaultScale()
{
return "A minor";
}
}
只是为了将相似的方法放在一起。