问题标签 [scala-java-interop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Scala 将 List[Int] 转换为 java.util.List[java.lang.Integer]
有没有办法Scala
将 a 转换List[Int]
为java.util.List[java.lang.Integer]
?
我正在与 Java (Thrift) 交互。
JavaConversions
supportList --> java.util.List
和implicits 之间存在Int --> java.lang.Integer
,但据我所知,我仍然需要额外的传递来手动进行转换:
scala - Scala 搜索一个不起眼的 Main 类
我有一个简单的 scala 脚本,如下所示:
这SenseEvalAllWordsDocumentReader
是一个 java 定义的类,它只是 SAX 解析器的包装器。调用句子应该简单地返回另一个名为 Sentence 的 java 定义类的 java List。如果我使用运行此代码
我得到以下可怕的输出混乱:
我假设这意味着 scala 正在寻找一些名为 Main 的类并且找不到它,但我不明白为什么它甚至会考虑寻找这个。此外,如果我删除该reader.sentences()
行,或对其进行调用size()
之类的操作,问题就会消失。我只能猜测 scala 以某种方式推断由于这个调用应该存在一个名为 Main 的类,但我没有看到任何明显的解决方法。
想法?任何帮助是极大的赞赏。
scala - java.util.Iterator 到 Scala 列表?
我有以下代码:
obj.getKeys
返回一个java.util.Iterator<java.lang.String>
根据文档调用asScala
,通过(导入)..JavaConverers
scala.collection.Iterator
定义
因此,基于此,我认为这应该可行,但是这是编译错误:
我了解类型参数或 java Iterator 是一个 Java 字符串,并且我正在尝试创建一个 Scala 字符串列表,但是(也许天真地)认为会有一个隐式转换。
java - 在 Java 中将 Scala 特征与已实现的方法一起使用
我想不可能从 Java 调用在 Scala 特征中实现的方法,或者有没有办法?
假设我在 Scala 中有:
在Java中,如果我将它用作
Java抱怨说Trait is not abstract and does not override abstract method bar() in Trait
scala - Scala 中 == 和 .equals 有什么区别?
==
Scala 中的和之间有什么区别,什么.equals()
时候使用哪个?
实现与Java中的相同吗?
编辑:相关问题讨论了AnyVal
. 更一般的情况是Any
。
java - Scala 对象的 Java 等价物是什么?
在 Scala 中,我们可以写
编译器是如何实现的?我可以Foo.bar();
从 Java 调用,但从new Foo();
Java 给出错误cannot find symbol symbol: constructor Foo()
- JVM 是否原生支持单例?
- 是否可以在 Java 中有一个没有构造函数的类?
注意:这里是输出的代码scalac -print
scala - Scala 中的 JavaConverters 和 JavaConversions 有什么区别?
在scala.collection
中,有两个非常相似的对象JavaConversions
和JavaConverters
。
- 这两个对象有什么区别?
- 为什么它们都存在?
- 我什么时候想使用一个与另一个?
scala - 在java中使用scala vararg方法
为什么所有 scala vararg 方法,当从 java 中使用时,似乎都接受变量的 Seq,并且不能用作 java 本机 vararg 方法。这是一个错误吗?
例如,Buffer
有方法def append(elems: A*): Unit
。但在 java 中它有另一个签名:void append(Seq<A>)
.
java - 我可以从 Java 访问不带括号的 Scala 对象的 val 吗?
给定以下 Scala 对象:
Scala 编译器似乎生成了一个无参数方法来访问该NAME
字段。但是,当我尝试从 Java 访问此字段时,似乎访问此字段的唯一方法是作为无参数方法,例如:
有没有办法哄 Scala 编译器允许 Java 访问val
每个预期的 Java 习惯用法:
scala - Java 可比较对象的惯用用法
我正在使用一些 java.util.Date(它实现了 java.lang.Comparable)并且希望能够很好地使用它,例如使用 < 和 >= 而不是“compareTo(other) == 1”。有没有一种很好的方法可以轻松地混合像 scala.math.Ordered 这样的东西而没有很多样板?