为什么允许接口main
在Java 8中使用方法?
如下面的代码所述,它工作正常并正确产生输出.
public interface Temp {
public static void main(String args[]){
System.out.println("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)
目前它表现得像一个类,我interface
用main方法执行.
我们为什么需要这个?
JB *_*zet 36
从Java 8开始,接口中允许使用静态方法.
main()是一个静态方法.
因此,接口中允许使用main().
我们不需要这个,因为以前不允许这样做,但我们幸存了下来.但是,根据定义,静态方法不是绑定到类的实例,而是绑定到类本身,因此在接口中允许它们是有意义的.它允许Collections
在接口本身中定义与接口相关的实用程序方法(例如,在接口中找到的),而不是单独的类.
类静态方法和接口静态方法之间没有区别.
cru*_*tex 13
我是@ jb-nizet的答案.对此没有"绝望的需求",但它消除了不必要的限制.例如,您现在可以在界面中声明一个工厂方法:
public interface SomeService {
public static SomeService getInstance() {
// e.g. resolve via service provider interface
}
...
}
Run Code Online (Sandbox Code Playgroud)
在Java 8之前,我们总是需要一个单独的工厂类.一个最喜欢的例子是谷歌应用引擎API.
归档时间: |
|
查看次数: |
3981 次 |
最近记录: |