java - 为什么Java的回调接口(interface)扩展而不是在Scala中实现

标签 java scala

我正在用异步方法编写一个kafka生产者API。因此,我使用了 Callback 接口(interface)来打印元数据。

java代码是:

private static class ProducerCallback(ProducerRecord<String, String> record) implements Callback {.....}

Scala 代码:

private class ProducerCallback(record: ProducerRecord[String, String]) extends Callback{...}

为什么在scala中回调被扩展并且没有实现?

最佳答案

Why in Scala the Callback is extended and not implemented?

不同的语言。显然,Java和Scala语言设计者在这一点上做出了不同的选择。

为什么?

我还没有找到1 Scala 设计者对他们为什么选择不复制 Java 的 extends + implements 的明确解释区别。然而,根据一般观察,他们倾向于使用干净/简洁的语法而不是更冗长的语法。

很明显,Scala 在不进行区分的情况下“工作”,如果语言不需要进行区分,那么干净/简洁的方法就不会这样做。

另请参阅:Why Java / Scala use extends / implements keywords?

(Java 为何要进行区分?这并不重要:这是古老的历史。)

<小时/>

1 - 要么不存在,要么我的谷歌技能让我失败。如果有人找到,请评论...

关于java - 为什么Java的回调接口(interface)扩展而不是在Scala中实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59769728/

相关文章:

Java readline() 保持套接字打开

java - 具有大量依赖项的项目中依赖项管理的最佳实践

scala - 有什么方法可以使用 import someValue._ 在 scala 中实现覆盖方法?

scala - Scala 中的动态 mixin - 可能吗?

java - VS Code 知道 Scala 和 Java,但无法连接它们

java - 强制 Artifact 仅依赖于相同或更低 Java 源版本的 Artifact

java - 使用按钮添加到 JList

java - 将音量应用于产生静电/噪音的 PCM 样本?

scala - 数据框:为 Scala 中的所有列添加前缀

scala - 从子项目引用 sbt 根项目中的设置