当前位置: 首页 > 知识库问答 >
问题:

在Kotlin中传递方法还是传递接口

邹涵畅
2023-03-14
class A{
   private FooListener listener;

   public A(FooListener listener){
        this.listener = listener;
   }

   public void foo(){
        // do something
        listener.method();
   }
}
class A(val method: () -> Unit ) {
    fun foo(){ 
        // do something
        method()
    }
}

那代码在OOP方式下还是好的吗?还是我应该用接口?我认为直接通过方法是可以的。

共有1个答案

澹台冯浩
2023-03-14

在Kotlin中,这两种方法都是正确的,可以根据您的用例使用。Java最初是一种面向对象的语言,但后来随着Java8的引入而包含了一些函数式编程特性,Kotlin从一开始就被设计成支持面向对象和函数式方法。

正如Kotlin在行动中所说

Kotlin允许您以函数式的方式编程,但不强制执行。

 类似资料:
  • 问题内容: 在java中是值传递还是引用传递,有什么区别? 问题答案: Java总是按值传递参数,而不是按引用传递参数。 看下面一个实例:

  • 问题内容: 我读了许多文章,都说Java是通过价值传递的。但是我仍然不能解释按值传递和引用之间的区别。我写了一个示例程序,它像这样执行。 执行 谁能向我解释这些问题… 价值传递是什么意思? 答:它只是将存储在变量中的数字或值传递给函数。我是对还是错。 How do you say Java是通过价值传递? 为什么Java是按值传递而不是按引用传递? 上面的程序Tries是否显示了“按值传递”和“引

  • 本文向大家介绍JS是按值传递还是按引用传递,包括了JS是按值传递还是按引用传递的使用技巧和注意事项,需要的朋友参考一下 按值传递 VS. 按引用传递 按值传递(call by value)是最常用的求值策略:函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。   按引用传递(call by reference)时,函数的形参接收实参的隐式引用,而不再是副本。这意味着函数形参的值如果被

  • 问题内容: 我一直认为Java使用传递引用。 但是,我已经看到了几篇博客文章声称不是(博客文章说Java使用值传递)。 我不认为我能理解他们的区别。 有什么解释? 问题答案: Java总是按值传递。 不幸的是,我们根本不处理任何对象,而是处理称为引用的 对象句柄(当然是通过值传递)。选择的术语和语义很容易使许多初学者感到困惑。 它是这样的: 在上面的示例中仍将返回”Max”。值aDog内main未

  • 因此,在父对象的状态中所做的更改也可以通过它所出现的道具立即在子对象中使用。 这样做正确吗?

  • 我一直认为Java使用按引用传递。 然而,我看到一篇博客文章声称Java使用传递值。 我想我不明白他们的区别。 原因是什么?