Kotlin:当一个接口定义了挂起函数而另一个接口没有定义时,如何解决函数名冲突

Kotlin:当一个接口定义了挂起函数而另一个接口没有定义时,如何解决函数名冲突,kotlin,Kotlin,我有以下问题,并能够通过重命名函数来解决问题。我发现自己在没有解决办法的情况下很难做到这一点 如何在不修改接口的情况下实现以下功能: interface A { fun test() { } } interface B { suspend fun test() } class C : A, B { suspend fun test(){ // Change that line as you wish // Implementation } 注:我知道。但这更困

我有以下问题,并能够通过重命名函数来解决问题。我发现自己在没有解决办法的情况下很难做到这一点

如何在不修改接口的情况下实现以下功能:

interface A {
    fun test() { }
}


interface B {
   suspend fun test()
}

class C : A, B {
  suspend fun test(){ // Change that line as you wish
    // Implementation
} 
注:我知道。但这更困难,因为IntelliJ没有表明C是a的有效实现

(据我所知,我的问题是其中一个接口定义了挂起函数,而另一个没有。我的直觉是,非挂起函数应该可以作为挂起函数实现,但似乎没有这种关系)


谢谢你的帮助

这是不明确的,编译器如何知道何时使用suspend修饰符调用
test()
,何时不使用suspend修饰符调用?(虽然在JVM级别,这两个函数是不同的,但从Kotlin编译器的角度来看,它们是相同的)如果这起作用,您如何满足A对
test()
方法的要求而不使用
suspend
修饰符?我认为某种解决方案应该是可能的。否则,处理接口可能是未来的一个大问题。“最坏情况”让我用相同的名称定义一个suspend函数和一个普通函数(这对我来说没有意义),但它不允许你用相同的名称定义一个普通函数和一个suspend函数。这不是问题的重点吗这与不能定义两个具有相同名称和参数但返回不同类型的方法的情况相同。-正如@AnimeshSahu所说的……问题是编译器不知道您要调用哪个。我认为最好的做法是,预期由单片类实现的接口应该具有高度描述性的函数名,以避免签名冲突的可能性。