问题标签 [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.
java - 如何从 Java 反射性地获取 Scala 对象上的字段?
我有以下对象:
如何使用 Java 反射来获取每个变量的值?我可以从对象中获取方法,但似乎无法弄清楚如何获取字段。这可能吗?
谢谢!
java - Eclipse Java 中的 Scala 对象嵌套类
使用 Eclipse IDE 时,我无法从 Java 代码中引用 Scala 类。有问题的 Scala 类嵌套在 Scala 对象结构中。当尝试在 Java 代码中使用该类时,Eclipse 抱怨使用二进制名称。
下面是定义感兴趣的类 ( ) 的 Scala 代码示例Inner
:
要在 Java 代码中使用该类Inner
,我使用以下代码:
但是,Eclipse (Indigo) 编译器在第一行抱怨以下消息:
嵌套类型 mypackage.Outer$Middle$Inner 无法使用其二进制名称引用
有趣的是,上面的 Java 代码在与 NetBeans 6.9.1 一起使用时有效。
这是 Eclipse 编译器的问题吗?是否有任何标志允许使用二进制名称?或者,或者,这是 Scala 的问题还是我使用它的方式?
java - 无法在scala中设置名为type的java注释成员?
我正在尝试将一些java代码移植到scala。该代码使用带有名为的成员的注释,type
但是这是 scala 中的关键字。有没有办法在scala中解决这个有效的java成员?
这是Java代码
这部分代码在 scala 中是相同的,只是它type
是一个关键字,所以它不会编译。有没有办法逃避type
关键字?
这也是带有type
成员的java类的问题
HasType.java
UseType.scala
java - Intellij idea 无法解析包含美元的类
这里的问题:我有包含已编译的 scala 代码的 jar。在罐子里我看到
Step.class Step$class.class
两者都是合法的java类。
但是,当我尝试在 Intellij Idea java 项目中使用 Step$class 时,它会显示:“无法解析符号 Step$class”。但是代码是用 maven 编译的,所以我认为问题出在 IDE 中。
java - 从 Java 访问 Scala 独立单例对象
我在访问 Scala 中的 fromString 方法时遇到问题。我尝试了 javap,并且我访问的至少一种方式应该可以工作,但事实并非如此。
应用程序.scala
测试.java
JAVAP 输出
javap App 编译自“App.scala”
javap App$ 编译自“App.scala”
java - Java类中的Scala getter和setter
我想创建一个遵循 Scala 设置器/获取器约定的 Java 类。
我尝试了以下简单的课程,但它不起作用:
但是当我尝试从 scala 访问它时:
我收到“重新分配给 val”错误消息。我试图寻找这个,但我发现了从 scala 到 java 的所有问题。
正确的方法是什么?
谢谢!
scala - 密封特性/对象案例类字节码从 2.9.1 更改。到 2.9.2?
两个目录中的相同源文件
我想在 Java 类中引用 Errors.scala 中的以下密封特征。在 Scala 2.9.1 中,我能够将 Java 中的 Errors.TooBig 引用为 Errors$TooBig$,它在 2.9.2 中不再编译。
错误.scala
JavaTest.java
我在两个不同的目录(2.9.1/2.9.2)中有相同的源文件。我可以使用 2.9.1 编译源代码,但不能使用 2.9.2。
这是 com.abc.Errors$TooBig$ 类文件的 javap 转储的差异:
您可以清楚地看到 2.9.1 和 2.9.2 都生成了一个名为 'Errors$TooBig$' 的类。
java - 用户定义的值类在 Java 中是什么样的?
通过与 Haskell 的比较,我想我了解 Scala 2.10 的新“价值类”功能newtype
:
我的问题是,值类如何出现在使用声明它的 Scala 包的 Java 代码中?值类是作为 Java 端的引用类出现的,还是被完全删除(因此作为它包装的类型出现)?换句话说,当 Java 涉及到源代码级别时,值类的类型安全性如何?
编辑
根据 SIP-15 文档(在 Daniel 的回答中链接),上面的代码不会编译,因为值类不允许有任何初始化逻辑,因为要么v
必须是明确的 val,要么Probability
必须有一个unbox
方法和一个相应的box
它的伴生对象上的方法,并且因为值类必须只有一个字段。正确的代码是:
然而,问题本身仍然有效。
scala - 从 java.util.Vector 转换为 scala Seq
我可以看到有一些方法可以从 Java 列表转换为 Scala seq(使用asScala
方法),但我找不到任何java.util.Vector
.
这种转换也有类似的方法吗?