使用JInterface将列表从Erlang发送到Java
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用JInterface将列表从Erlang发送到Java,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1615字,纯文字阅读大概需要3分钟。
内容图文
![使用JInterface将列表从Erlang发送到Java](/upload/InfoBanner/zyjiaocheng/682/7bd0c7d758cf4b9b8d9dbdb8427c0de5.jpg)
我正在编写一个程序,要求使用JInterface在Java和Erlang之间进行通信.
我在从Erlang进程接收列表时遇到问题-某种程度上,我在Java中获取的对象不是OtpErlangList,而是OtpErlangString,如果我尝试将接收到的对象强制转换为OtpErlangList,则会收到强制转换异常.我曾尝试解码字符串,但事实并非如此.
在我看来,无法将列表从Erlang发送到Java似乎很奇怪,如果我没有犯任何基本错误,能否请您看看?
Java片段:
OtpErlangObject erlangObject = mailbox.receive();
OtpErlangList erlangList = (OtpErlangList) erlangObject;
System.out.println(erlangList.toString());
Erlang片段:
List = [1, 2, 3, 4],
JavaPid ! List
我忽略了其余的代码,因为我相信这些是问题所在所在的行-我已经在其他类上进行了尝试,并且可以正常工作.
解决方法:
从Jinterface文档中:
Lists in Erlang are also used to describe sequences of printable characters (strings). A convenience class
OtpErlangString
is provided to represent Erlang strings.
获取字符串
为了在Java端获取一串可打印的字符,应该使用stringValue()方法,该方法将整数列表转换为Unicode字符串并返回java.lang.String对象.
二郎方面:
List = "hey" = [$h, $e, $y] = [104, 101, 121],
JavaPid ! List
Java方面:
OtpErlangObject erlangObject = mailbox.receive();
OtpErlangList erlangList = (OtpErlangList) erlangObject;
System.out.println(erlangList.stringValue());
获取数组
为了在Java端获取元素列表,您应该使用elements()方法,该方法返回包含列表中所有元素的数组.这样,数组的每个元素都是OtpErlangObject类型的对象.
二郎方面:
List = [1, 2, 3, 4],
JavaPid ! List
Java方面:
OtpErlangObject erlangObject = mailbox.receive();
OtpErlangList erlangList = (OtpErlangList) erlangObject;
for(OtpErlangObject element : erlangList.elements()) {
// do something with element
}
内容总结
以上是互联网集市为您收集整理的使用JInterface将列表从Erlang发送到Java全部内容,希望文章能够帮你解决使用JInterface将列表从Erlang发送到Java所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。