Sky*_*ker 11 java interop scala language-interoperability
我有一个Akka应用程序,其中的演员用Scala编写,其他用Java编写.在一个案例中,Scala Actor写了一个Array[Byte],我需要从Java Actor反序列化它.在这个用例中,我最终需要Java中的String表示,Array[Byte]这样才能解决我的问题.
斯卡拉演员:
val outputStream = new java.io.ByteArrayOutputStream()
val bufferedOutputStream = new java.io.BufferedOutputStream(outputStream, 1024)
val exitCode : Integer = processBuilder #> bufferedOutputStream !
bufferedOutputStream.flush
val content = outputStream.toByteArray // this gives an Array[Byte]
javaActorRef.tell(content, getSelf())
Run Code Online (Sandbox Code Playgroud)
Java演员:
/**
* {@inheritDoc}
*/
@Override
public void onReceive(Object object) throws Exception {
// object has a Scala Array[Byte] how do I convert here to
// byte[] or to String?
Run Code Online (Sandbox Code Playgroud)
ser*_*jja 19
Scala Array[Byte]已经是Java了byte[].证明:
object ScalaSide extends Application {
val a = Array[Byte](1, 2, 3)
JavaSide.doSmth(a)
}
Run Code Online (Sandbox Code Playgroud)
-
import java.util.Arrays;
public class JavaSide {
public static void doSmth(Object arr) {
byte[] b = (byte[]) arr;
System.out.println(Arrays.toString(b));
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8936 次 |
| 最近记录: |