java - 为什么 Java 的回调接口扩展而不在 Scala 中实现
问题描述
我正在用异步方法编写一个 kafka 生产者 API。所以,我使用了一个回调接口来打印元数据。
java代码是:
private static class ProducerCallback(ProducerRecord<String, String> record) implements Callback {.....}
斯卡拉代码:
private class ProducerCallback(record: ProducerRecord[String, String]) extends Callback{...}
为什么在scala中回调被扩展而不是实现?
解决方案
为什么在 Scala
Callback
中扩展而不实现?
不同语言。显然,Java 和 Scala 语言设计者在这一点上做出了不同的选择。
为什么?
我没有设法从 Scala 设计者那里找到一个明确的解释,说明他们为什么选择不复制 Java 的extends
+implements
区别。但是,作为一般观察,他们倾向于使用简洁/简洁的语法而不是更冗长的语法。
很明显,Scala 在没有区别的情况下“工作”,如果语言不需要进行区别,那么干净/简洁的方法就不会这样做。
另请参阅:为什么 Java / Scala 使用 extends / implements 关键字?
(为什么 Java 会做出区分?这并不重要:它是古老的历史。)
1 - 要么不存在,要么我的谷歌技能让我失望。如果有人找到了,请评论...
推荐阅读
- php - 从 Android 向 php 发送查询
- javascript - 提交数据后使按钮消失
- android - 是否需要为我使用的每个 GestureDetector 调用 setState()?
- angularjs - 如何创建检查以停止在 AngularJS 的文本字段中输入重复值
- python - 使用 Python Pandas 从每月平均值生成每日预测
- python - 还有另一种使用 Anaconda 安装 ncview 的方法吗?
- oracle - Oracle XE 监听器在系统重启后自动停止
- scala - Scala:按(近似)完成时间分批处理期货
- r - 在 R 中绘制具有默认值的水平条形图
- java - 我插入到表中的数据不会替换旧数据,如果数据已经存在,有没有办法替换它?