public interface Example<E>
{
E get(int index);
default E get()
{
return get(0);
}
}
这将是界面的初始设计。像这样的东西是可以接受的默认方法的使用(基本上是默认参数),还是应该只在未来使用它们来增加功能?
public interface Example<E>
{
E get(int index);
default E get()
{
return get(0);
}
}
这将是界面的初始设计。像这样的东西是可以接受的默认方法的使用(基本上是默认参数),还是应该只在未来使用它们来增加功能?
这是在 Java 8 和更新版本的接口上对默认方法的有效使用。
这是文档: https ://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html
我可以从 Oracle 找到的有关接口方法预期用途的官方资料是(来源):default
默认方法使您能够向库的接口添加新功能,并确保与为这些接口的旧版本编写的代码的二进制兼容性。
但是,我把它当作一个abstract
类,定义必须abstract
由子类实现的方法(在这种情况下,是没有默认实现的接口方法),以及提供可能被子类覆盖的具体方法(默认接口方法) .
官方声明的目的是为了与实现旧接口的客户端向后兼容(否则他们都必须返回并实现这个新方法)。它只是为此目的而添加的,而不是最初的 Java 功能。但老实说,这没什么大不了的,而且增加的易用性在我看来肯定是可以接受的。