正如本博客所述,我们现在可以使用本地类型推断编写以下内容(据我所知,这是以前在不引入更多代码的情况下无法实现的):
public static void main(String... args) {
var duck = (Quacks & Waddles) Mixin::create;
duck.quack();
duck.waddle();
}
interface Quacks extends Mixin {
default void quack() {
System.out.println("Quack");
}
}
interface Waddles extends Mixin {
default void waddle() {
System.out.println("Waddle");
}
}
interface Mixin {
void __noop__();
static void create() {}
}
Run Code Online (Sandbox Code Playgroud)
这个问题可能过于宽泛或主要基于意见,但在利用这样的交集类型时是否存在任何有用的应用?