问题标签 [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.

0 投票
1 回答
3879 浏览

oop - 具有伴随对象的类与具有相同名称的类和对象之间有什么区别?

Scala 类的“伴生对象”可以被视为具有与类相同的完全限定名称的单例对象(即同名,在同一个包中)。它们用于保存类的所有实例共有的实用函数,作为 Javastatic方法的替代品。

但是,在文档和问题的各个地方,它都说必须在同一个编译单元中定义伴随对象。例如,它们必须在同一个文件中定义;不能为 Java 对象定义伴生对象在 REPL 中,它们必须在同一输入行上定义,因此会出现警告消息:

这意味着在类及其伴生对象之间必须有区别,而只是具有相同(完全限定)名称的类和对象。这个区别是什么?

0 投票
1 回答
838 浏览

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,现在可以正常工作了。这是我的最终代码:

0 投票
3 回答
567 浏览

java - Scala“对象”变量在java中不可见吗?

可能重复:
从java访问scala对象字段

我有这个 scala 对象

当我在java代码上这样做时:

它有效,但是当我这样做时

它没有:

0 投票
1 回答
2015 浏览

java - 在scala中访问java基类的静态成员

我有一些用Java编写的代码。对于新课程,我计划用 Scala 编写。我在访问基类的受保护静态成员时遇到问题。这是示例代码:

Java代码:

斯卡拉代码:

对此有何建议?我怎么能在不修改现有基类的情况下解决这个问题

0 投票
2 回答
18409 浏览

java - 如何在 Java 中使用 Scala 单例对象?

我有一个需要在 Java 类中使用的 Scala 对象。

这是 Scala 对象

如何在 Java 中使用这个 Scala 对象?

到目前为止,我已经尝试了以下但没有成功(编译错误):

  • Person.MALE()//返回一个无用的字符串,因为我想要实际的 Person 对象
0 投票
1 回答
1585 浏览

java - 当需要 Scala 的 List 时,使用 java.util.List 从 Java 调用 Scala 代码

我在 Scala 中编写了一个 API。有几个入口点,我期望 List[SomeTrait] 作为输入并返回 List[OtherTrait]。

我将该 Jar 包含在 Java 项目中以供使用,并在尝试将 java.util.List 传递给期望 Scala 的 List 对象的方法时遇到问题。我意识到它们不一样,Java 不知道如何进行转换。那么,如何在不期望 Java 调用者传入 Scala 列表的情况下完成这项工作?

0 投票
2 回答
1156 浏览

scala - 可遍历 => Java 迭代器

我有一个 Traversable,我想把它变成一个 Java 迭代器。我的问题是我希望一切都懒惰地完成。如果我在可遍历对象上执行 .toIterator,它会急切地生成结果,将其复制到 List 中,然后返回 List 上的迭代器。

我确定我在这里遗漏了一些简单的东西......

这是一个小测试用例,说明了我的意思:

0 投票
1 回答
1563 浏览

java - 在 Java 代码中使用 Scala 类型别名

假设我在 scala 中定义了类型别名为

看起来我不能像这样在 Java 代码中引用别名(它只是抱怨找不到符号):

我也尝试过静态导入。

(更具体地说,我有 java 反射代码,我无法更改它需要知道参数类型,并且我需要向它提供 Bar 别名)。

我知道,我可以在 Scala 中创建包装器

但也许我错过了其他方式?

0 投票
1 回答
180 浏览

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.

0 投票
3 回答
3774 浏览

java - 如何在 Scala 等效项中转换 Java foreach 循环?

我正在尝试将以下 Java 代码转换为 Scala:

以下是上述 Java 代码的当前 Scala 版本:

我收到此行错误

简单模式的非法开始

如何完成上述代码,以便它执行相同的 Java 功能但用 Scala 编写?