为什么Java的回调接口被扩展而没有在Scala中实现
我正在用异步方法编写一个kafka生产者API。因此,我使用回调接口打印元数据 java代码是:为什么Java的回调接口被扩展而没有在Scala中实现,java,scala,Java,Scala,我正在用异步方法编写一个kafka生产者API。因此,我使用回调接口打印元数据 java代码是: private static class ProducerCallback(ProducerRecord<String, String> record) implements Callback {.....} 为什么在scala中回调被扩展而没有实现 为什么在Scala中,回调被扩展而没有实现 不同的语言。显然,Java和Scala语言设计师在这一点上做出了不同的选择 为什么? 我还没
private static class ProducerCallback(ProducerRecord<String, String> record) implements Callback {.....}
为什么在scala中回调被扩展而没有实现
为什么在Scala中,回调
被扩展而没有实现
不同的语言。显然,Java和Scala语言设计师在这一点上做出了不同的选择
为什么?
我还没有从Scala设计师那里找到一个明确的解释,解释他们为什么选择不复制Java的扩展
+实现区别。然而,根据一般观察,他们倾向于使用干净/简洁的语法,而不是更详细的语法
很明显,Scala“工作”时没有进行区分,如果语言不需要进行区分,那么干净/简洁的方法是不这样做的
另见:
(为什么Java会有这样的区别?这其实并不重要:它是古老的历史。)
1-要么没有现存的,要么我的谷歌技能让我失望。如果有人找到了,请评论
为什么在Scala中,回调
被扩展而没有实现
不同的语言。显然,Java和Scala语言设计师在这一点上做出了不同的选择
为什么?
我还没有从Scala设计师那里找到一个明确的解释,解释他们为什么选择不复制Java的扩展
+实现区别。然而,根据一般观察,他们倾向于使用干净/简洁的语法,而不是更详细的语法
很明显,Scala“工作”时没有进行区分,如果语言不需要进行区分,那么干净/简洁的方法是不这样做的
另见:
(为什么Java会有这样的区别?这其实并不重要:它是古老的历史。)
1-要么没有现存的,要么我的谷歌技能让我失望。如果有人发现,请评论……/P>因为斯卡拉的设计者没有考虑<代码>扩展< /COD>和<代码>实现足够有用。(C#和科特林也不行)@AlexeyRomanov我同意这没有用。。。但如果“scala设计师”这么想,那么为什么他们要用和扩展D我认为真正的原因是scala中的语法是如何工作的:首先必须是扩展
,它不能与
,所以这里没有任何选择。@Dima scala有与
和扩展
,因为它有类和特征(并且不支持多重继承)@Dima这有点像双关语:D用B和C扩展a
可以理解为D扩展(a用B和C)
(虽然它实际上不是这样解析的),而D
是a和B和C的一个子类型。
@Tim是的,我知道,它假装这就是区别(你用“traits”来“扩展”类)但是,这是一个谎言。例如,这里的代码>可调用的< /代码>是一个接口(特性),但是你仍然“扩展”它。因为斯卡拉的设计者没有考虑到<代码>扩展< /COD>和<代码>实现足够有用。(C和Kotlin不这样做)@ AlxyRyRoVo我同意它是没有用的…但是如果“Scala设计者”“我想,那他们为什么要用和扩展?”D我认为真正的原因是scala中的语法是如何工作的:首先必须是扩展
,它不能与
,所以这里没有任何选择。@Dima scala有与
和扩展
,因为它有类和特征(并且不支持多重继承)@Dima这有点像双关语:D用B和C扩展a
可以理解为D扩展(a用B和C)
(虽然它实际上不是这样解析的),而D
是a和B和C的一个子类型。
@Tim是的,我知道,它假装这就是区别(你用“traits”来“扩展”类)例如,Callable
是一个接口(trait),但您仍然“扩展”了它。
private class ProducerCallback(record: ProducerRecord[String, String]) extends Callback{...}