2011-09-15 34 views
0

在我们的Java程序中,我们收到一个Erlang元组并将其解压到OtpErlangTuple中。元组的元素之一应该是一个字符串,但可以是空的。当它为空时,它的值是[] - 表示空列表的Erlang方式。如何确定erlang项是否为空com.ericsson.otp.erlang

我的问题是如何检查元素是否为空以便将它投射到OtpErlangString

像现在(OtpErlangString)messageData.elementAt(2),以下异常引发:

class java.lang.ClassCastException , 'com.ericsson.otp.erlang.OtpErlangList cannot be cast to com.ericsson.otp.erla ng.OtpErlangString'

感谢,

马丁

回答

2

检查它是否等于[]如果这样做了具体的操作:

OtpErlangString convertedString; 
if(messageData.elementAt(2).toString().equals("[]")) { 
    // do something assigning some value to convertedString 
} else { 
    convertedString = (OtpErlangString) messageData.elementAt(2); 
} 

你可以按照你想要的方式来处理这个案例,这取决于你如何管理这些案例OtpErlangString

+1

好。谢谢。尼斯黑客。我试图将其转换为'OtpErlangList'并检查是否包含任何元素,但是如果提供的非空字符串不想转换为列表。不过,我徘徊了。是不是Erlang string = Erlang列表? –