哪些规则使接口能够用作尾随 lambda参数?
我虽然唯一的规则是它的定义具有独特的功能,但是我陷入了以下问题:
我有这个Java接口
public interface ToolbarFragmentCallBack {
void onNavigationClick();
}
从 java 类调用:
public void addToolBar(int container, String title, boolean isParent,
ToolbarFragment.ToolbarFragmentCallBack callback) {
//do something
}
这是从 Kotlin 和 Java 文件中调用的:
科特林 (1):
addToolBar(R.id.toolbar_fragment, toolbarTitle, toolbarParent) {
presenter.onClickNavigationToolBar()
}
爪哇 (2):
addToolBar(R.id.toolbar_fragment, definition.getTitle(), false, () -> {
activity.onBackPressed();
});
但是,我最近将接口迁移到了 Kotlin:
interface ToolbarFragmentCallBack {
fun onNavigationClick()
}
现在 **Kotlin (1) ** 实现调用无法编译,并带有消息
类型不匹配:推断类型为 () -> Unit 但 ToolbarFragment.ToolbarFragmentCallBack!预计