问题标签 [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.
oop - 具有伴随对象的类与具有相同名称的类和对象之间有什么区别?
Scala 类的“伴生对象”可以被视为具有与类相同的完全限定名称的单例对象(即同名,在同一个包中)。它们用于保存类的所有实例共有的实用函数,作为 Javastatic
方法的替代品。
但是,在文档和问题的各个地方,它都说必须在同一个编译单元中定义伴随对象。例如,它们必须在同一个文件中定义;不能为 Java 对象定义伴生对象;在 REPL 中,它们必须在同一输入行上定义,因此会出现警告消息:
这意味着在类及其伴生对象之间必须有区别,而只是具有相同(完全限定)名称的类和对象。这个区别是什么?
java - Scala,不喜欢 java 集合 API?
我正在使用异步httpclient。构建参数时,将 java.util.Map 传递给 setParameters 方法。
(Java) 签名如下所示:
真正的第一天的东西。但是哇,我正试图从 Scala 中调用它,但我一生都无法创建一个与该签名相匹配的集合。
这是我到目前为止造成的混乱。
这是错误消息,
很公平,我不会认为我在做一些特别复杂的事情,但是让我们尝试一下编译器的建议......
所以我将其更改为以下
并收到以下可爱的错误消息作为响应。
回到基本的,我还想提一下,我的第一次尝试如下。
但这产生了以下
此行的多个标记 - 具有替代方法的重载方法值 setParameters: (com.ning.http.client.FluentStringsMap)com.ning.http.client.RequestBuilder (java.util.Map[java.lang.String,java.util. Collection[java.lang.String]])com.ning.http.client.RequestBuilder 不能应用于 (java.util.Map[String,Set[String]])
编辑,感谢 __0,现在可以正常工作了。这是我的最终代码:
java - 在scala中访问java基类的静态成员
我有一些用Java编写的代码。对于新课程,我计划用 Scala 编写。我在访问基类的受保护静态成员时遇到问题。这是示例代码:
Java代码:
斯卡拉代码:
对此有何建议?我怎么能在不修改现有基类的情况下解决这个问题
java - 如何在 Java 中使用 Scala 单例对象?
我有一个需要在 Java 类中使用的 Scala 对象。
这是 Scala 对象
如何在 Java 中使用这个 Scala 对象?
到目前为止,我已经尝试了以下但没有成功(编译错误):
Person.MALE()
//返回一个无用的字符串,因为我想要实际的 Person 对象
java - 当需要 Scala 的 List 时,使用 java.util.List 从 Java 调用 Scala 代码
我在 Scala 中编写了一个 API。有几个入口点,我期望 List[SomeTrait] 作为输入并返回 List[OtherTrait]。
我将该 Jar 包含在 Java 项目中以供使用,并在尝试将 java.util.List 传递给期望 Scala 的 List 对象的方法时遇到问题。我意识到它们不一样,Java 不知道如何进行转换。那么,如何在不期望 Java 调用者传入 Scala 列表的情况下完成这项工作?
scala - 可遍历 => Java 迭代器
我有一个 Traversable,我想把它变成一个 Java 迭代器。我的问题是我希望一切都懒惰地完成。如果我在可遍历对象上执行 .toIterator,它会急切地生成结果,将其复制到 List 中,然后返回 List 上的迭代器。
我确定我在这里遗漏了一些简单的东西......
这是一个小测试用例,说明了我的意思:
java - 在 Java 代码中使用 Scala 类型别名
假设我在 scala 中定义了类型别名为
看起来我不能像这样在 Java 代码中引用别名(它只是抱怨找不到符号):
我也尝试过静态导入。
(更具体地说,我有 java 反射代码,我无法更改它需要知道参数类型,并且我需要向它提供 Bar 别名)。
我知道,我可以在 Scala 中创建包装器
但也许我错过了其他方式?
scala - What are the guarantees for scala access qualifiers?
I have a class with this code:
Then in a different package, I use that class:
Looking at the generated bytecode, there is no sign of any access modifier, which makes sense, as Java does not support such access restrictions. So what happens if I create a library containing code like block one, and attempt to compile block two against the library - there is no chance that the compiler will fail, since the information is lost. Or is it contained in something like a manifest?
I'm using Scala 2.9.2.
java - 如何在 Scala 等效项中转换 Java foreach 循环?
我正在尝试将以下 Java 代码转换为 Scala:
以下是上述 Java 代码的当前 Scala 版本:
我收到此行错误
简单模式的非法开始
如何完成上述代码,以便它执行相同的 Java 功能但用 Scala 编写?