Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java的回调接口被扩展而没有在Scala中实现_Java_Scala - Fatal编程技术网

为什么Java的回调接口被扩展而没有在Scala中实现

为什么Java的回调接口被扩展而没有在Scala中实现,java,scala,Java,Scala,我正在用异步方法编写一个kafka生产者API。因此,我使用回调接口打印元数据 java代码是: private static class ProducerCallback(ProducerRecord<String, String> record) implements Callback {.....} 为什么在scala中回调被扩展而没有实现 为什么在Scala中,回调被扩展而没有实现 不同的语言。显然,Java和Scala语言设计师在这一点上做出了不同的选择 为什么? 我还没

我正在用异步方法编写一个kafka生产者API。因此,我使用回调接口打印元数据

java代码是:

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{...}