在最近的一次采访中,我被问到一个问题:“如何说在java8中函数式接口类似于标记接口”。
我无法回答这个问题。
但是我认为标记接口甚至没有任何方法,而函数式接口必须有一个方法可被重写。
有人能帮我理解这是否在某些情境下是一个有效的论点或者问题本身就是错误的吗?
我无法回答这个问题。
但是我认为标记接口甚至没有任何方法,而函数式接口必须有一个方法可被重写。
有人能帮我理解这是否在某些情境下是一个有效的论点或者问题本身就是错误的吗?
Cloneable
。 - Turing85@FunctionalInterface
注解该接口外,您还需要在接口中声明一个单一的抽象方法。@FunctionalInterface
注解但没有抽象方法的接口,您将会得到以下错误:
FunctionalInterfaceAttempt.java:1: error: Unexpected @FunctionalInterface annotation @FunctionalInterface ^ JavaJava is not a functional interface no abstract method found in interface JavaJava 1 error如果您尝试编译具有多个抽象方法的相同接口,则会得到以下错误:
JavaJava.java:1: error: Unexpected @FunctionalInterface annotation @FunctionalInterface ^ JavaJava is not a functional interface multiple non-overriding abstract methods found in interface JavaJava 1 error我认为这种行为不符合标记接口的定义。