ExtensionObjects的不可能的类名

时间:2018-08-22 12:36:40

标签: opc-ua milo

我正在使用<table id="tbl" class="table" cellspacing="0" width="100%" style="word-wrap:break-word; table-layout: fixed;"> <thead> <tr> <th>Column Name</th> </tr> </thead> </table> 浏览服务器的功能。

这还涉及解码Milo(这对ExtensionObjects很好)。

UnifiedAutomationReadCustomDataTypeExample和milo服务器上,它无法正常运行,因为无法将open62541强制转换为ExtensionObjects-请注意以下例外情况中的“ [L]”:

ExtensionObjects

这是java.lang.ClassCastException: [Lorg.eclipse.milo.opcua.stack.core.types.builtin.ExtensionObject; cannot be cast to org.eclipse.milo.opcua.stack.core.types.builtin.ExtensionObject 中的错误吗?还是我错过了什么?

我正在使用最新的Eclipse来编译服务器和客户端。 我正在使用Milo中的Milo 0.2.3

1 个答案:

答案 0 :(得分:0)

此问题是通过将Object[]强制转换为Object而产生的。现在,下面的代码可以正常工作。

if(rd.getDisplayName().getText().equals("OutputArguments")) {

    DataValue readServiceResult = client.readValue(100, TimestampsToReturn.Both, rd.getNodeId().local().get()).get();
    Variant args =readServiceResult.getValue();

    NodeId ni = args.getDataType().get();

    Object[] oVal = (Object[])args.getValue();
    Object val = oVal[0];
    if(val instanceof ExtensionObject) {
        ExtensionObject eo = (ExtensionObject)oVal[0];
        Object o = eo.decode();
        System.out.println(o);
    }
}