【问题标题】:Error:incompatible types: DeviceCheckCallback is not a functional interface错误:不兼容的类型:DeviceCheckCallback 不是功能接口
【发布时间】:2016-07-06 11:11:08
【问题描述】:

我有一个曾经可以使用的界面。现在我希望它有更多的抽象方法,所以我将它们添加到接口中并更改了所有实现以覆盖这些方法。我在我的项目中使用了 retrolambda。 当我运行该应用程序时,我收到以下错误:

Error:incompatible types: DeviceCheckCallback is not a functional interface multiple non-overriding abstract methods found in interface DeviceCheckCallback

为什么我会看到这个?我不想再让这个界面发挥作用了?

【问题讨论】:

  • 要么,您在该接口处仍然有 @FunctionalInterface 注释,或者您在需要该接口类型的地方有 lambda 表达式。或者你没有重新编译所有的类。但奇怪的是你得到这个在运行时

标签: java android java-8 retrolambda


【解决方案1】:

您尝试为其提供 Lambda 的接口有多个方法。 Lambda 只能用于具有单一方法的接口(他们称之为“功能接口”)

【讨论】:

  • 我找到了该接口的所有用法并更改了实现以覆盖新定义的方法。我不尝试为该接口提供 lambda,并且我没有 @FunctionalInterface 注释。
  • 也许您正在包含一个 Jar 或其他仍然期待旧的未更改界面的东西。听起来您没有更改该界面的所有用户,或者没有按照 Holger 的建议重新编译代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
  • 2011-07-18
  • 1970-01-01
相关资源
最近更新 更多