首页 > TAG信息列表 > default-method

java-在lambda表达式中使用默认方法

根据JLS 15.27.2,lambda主体与周围的上下文具有相同的作用域,我想知道是否有特定的原因导致为何lambda所实现的接口中的默认方法也无法在主体中使用吗?此限制是否启用了某些优化功能,还是只是为了简化过载规则? 我今天正在制作一些Java 8 API的原型,当我遇到这个限制时,我非常失望,因

Java:在同一接口的另一个默认方法中调用默认方法

我对Java 8功能非常陌生,并尝试了解默认方法.有没有比使用匿名类更简单的方法来通过同一接口的另一个默认方法来调用默认方法? 例如: public class Frame{ public static void main(String... args){ Frame.C c= new Frame.C(); c.doSomething(); } p

为什么Java 8中的Cloneable中没有默认的clone()

Java中的可克隆性本质上是破碎的.具体来说,我对界面的最大问题是它需要一种不定义方法本身的方法行为.因此,如果遍历Cloneable列表,则必须使用反射来访问其定义的行为.但是,在Java 8中,我们现在有了默认方法,现在我问为什么Cloneable中没有默认的clone()方法. 我理解为什么interfac

java – 为什么Delayed没有为compareTo提供默认方法?

界面Delayed需要任何 implementation of this interface [to] define a 07001 method that provides an ordering consistent with its getDelay method. 但是我想知道为什么Java 8中没有默认实现,因为contractTo要求compareTo完全依赖于getDelay. 有没有具体的理由将其留给实施

Java 8:自动合成多个接口的默认方法

我有类实现多个接口,它们具有相同的默认默认方法.我想知道如何从所有接口合成默认方法.例如: interface IA { default void doA() {} default void process() { // do something } } interface IB { default void doB() {} default void process(