草庐IT

language-scala

全部标签

Scala:使用两个列表创建哈希图

我在Scala中有两个列表:valworkersList=Worker1::Worker2::Worker3::Worker4::Nil//typeList[Worker]valworkStationsList=WS1::WS2::WS3::WS4::Nil//typeList[WorkStation]工人对象有一个参数worksIn:List[WorkStation]知道Worker1工作WS1和WS2,Worker2工作WS1和WS2,Worker3工作WS3和WS4和Worker4工作WS3和WS4我想得到一个HashMap[Worker,List[WorkStation]]这完全说明了

java - Scala repl 抛出错误

当我在终端输入scala启动repl时,它会抛出这个错误scala>[init]error:errorwhileloadingAnnotatedElement,classfile'/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar(java/lang/reflect/AnnotatedElement.class)'isbroken(badconstantpooltag15atbyte2713)当我点击enter并输入println("hello,world")时,它再次抛出这个error:errorwhileloadingCharSequence,cla

java - Scala repl 抛出错误

当我在终端输入scala启动repl时,它会抛出这个错误scala>[init]error:errorwhileloadingAnnotatedElement,classfile'/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar(java/lang/reflect/AnnotatedElement.class)'isbroken(badconstantpooltag15atbyte2713)当我点击enter并输入println("hello,world")时,它再次抛出这个error:errorwhileloadingCharSequence,cla

java - 在 Scala 中,如何子类化具有多个构造函数的 Java 类?

假设我有一个带有多个构造函数的Java类:classBase{Base(intarg1){...};Base(Stringarg2){...};Base(doublearg3){...};}如何在Scala中扩展它并仍然提供对Base的所有三个构造函数的访问?在Scala中,子类只能调用它的父类(superclass)的构造函数之一。我该如何解决这个规则?假设Java类是我无法更改的遗留代码。 最佳答案 很容易忘记一个特征可以扩展一个类。如果你使用trait,你可以推迟决定调用哪个构造函数,如下所示:traitExtendedext

java - 在 Scala 中,如何子类化具有多个构造函数的 Java 类?

假设我有一个带有多个构造函数的Java类:classBase{Base(intarg1){...};Base(Stringarg2){...};Base(doublearg3){...};}如何在Scala中扩展它并仍然提供对Base的所有三个构造函数的访问?在Scala中,子类只能调用它的父类(superclass)的构造函数之一。我该如何解决这个规则?假设Java类是我无法更改的遗留代码。 最佳答案 很容易忘记一个特征可以扩展一个类。如果你使用trait,你可以推迟决定调用哪个构造函数,如下所示:traitExtendedext

java - Scala 中的 "eval"

Scala可用于编写Java应用程序脚本吗?我需要从Java加载一段Scala代码,为其设置执行范围(主机应用程序公开的数据),对其进行评估并从中检索结果对象。Scala文档展示了从Java调用编译后的Scala代码是多么容易(因为它会变成常规的JVM字节码)。但是我如何动态评估Scala表达式(来自Java,或者如果更简单,来自Scala内部)?对于许多其他语言,有javax.scripting接口(interface)。Scala似乎不支持它,而且我在Java/Scala互操作性文档中找不到任何不依赖提前编译的内容。 最佳答案

java - Scala 中的 "eval"

Scala可用于编写Java应用程序脚本吗?我需要从Java加载一段Scala代码,为其设置执行范围(主机应用程序公开的数据),对其进行评估并从中检索结果对象。Scala文档展示了从Java调用编译后的Scala代码是多么容易(因为它会变成常规的JVM字节码)。但是我如何动态评估Scala表达式(来自Java,或者如果更简单,来自Scala内部)?对于许多其他语言,有javax.scripting接口(interface)。Scala似乎不支持它,而且我在Java/Scala互操作性文档中找不到任何不依赖提前编译的内容。 最佳答案

java - 在 Java 中将 Scala 特征与已实现的方法一起使用

我想不可能从Java调用Scala特征中实现的方法,或者有没有办法?假设我在Scala中:traitTrait{defbar={}}如果我将它用作Java的话classFooimplementsTrait{}Java提示Trait不是抽象的,并且不会覆盖Trait中的抽象方法bar() 最佳答案 回答从Java的角度来看,Trait.scala被编译成Traitinterface。因此,在Java中实现Trait被解释为实现了一个接口(interface)——这使得你的错误信息很明显。简短的回答:你不能利用Java中的trait实现

java - 在 Java 中将 Scala 特征与已实现的方法一起使用

我想不可能从Java调用Scala特征中实现的方法,或者有没有办法?假设我在Scala中:traitTrait{defbar={}}如果我将它用作Java的话classFooimplementsTrait{}Java提示Trait不是抽象的,并且不会覆盖Trait中的抽象方法bar() 最佳答案 回答从Java的角度来看,Trait.scala被编译成Traitinterface。因此,在Java中实现Trait被解释为实现了一个接口(interface)——这使得你的错误信息很明显。简短的回答:你不能利用Java中的trait实现

java - 使用 maven 构建一个 scala 应用程序(其中混入了 java 源代码)

我有一个应用程序,我想混合Java和Scala源代码(实际上是将Java应用程序迁移到scala-但一次一点)。我可以在IDE中完成这项工作,非常好。但是我不确定如何使用maven来做到这一点-scalac可以编译java和scala交织在一起,但是如何为模块设置maven?另外,我的scala源是否必须是与java不同的文件夹? 最佳答案 使用mavenscala插件,像下面这样的配置将适用于混合java和scala源的项目(scala源当然位于/scala目录中,正如其他人所提到的)。您可以运行运行mvncompile、test