mts*_*tsz 9 java scala bytearray
我是Scala的新手,目前正在开展涉及Java和Scala模块的项目.现在我想使用byte []类型的参数从Java调用Scala方法.
Scala方法有签名: def foo(data: Array[Byte])
Java调用如下所示:foo(x)其中x具有类型byte[].
IDE告诉我它不可能:
The method foo(Array) in the type Bar is not applicable for the arguments (byte[])
Run Code Online (Sandbox Code Playgroud)
作为附加约束,不优选更改Scala方法.在Java方面,我尝试使用Byte[],但这并没有解决问题.必须存在一些转换?
正如其他人指出的,转换没有问题。我的 IDE 表现错误,并显示虚构的错误,但编译时没有问题。此时,以下代码中主方法中的 receive 方法的调用被标记为错误:
ScalaByteReceiver 类型的 receive(Array) 方法引用了缺失的 Array 类型
但是这段代码举例说明了我的问题,可以很好地编译并产生预期的结果:
爪哇:
The method receive(Array) from the type ScalaByteReceiver refers to the missing type Array
斯卡拉:
package stackOverflow;
public class JavaByteSender {
public static void main(String... args) {
new ScalaByteReceiver().receive(new byte[4]);
}
}
Run Code Online (Sandbox Code Playgroud)
所以 Java 和 Scala 很好地理解了彼此。
| 归档时间: |
|
| 查看次数: |
11840 次 |
| 最近记录: |