作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用eclipse milo连接OPCUA服务器,可以使用browse获取方法节点,那么如何获取方法参数的DataType呢?
就像: 最终 BrowseDescription browserDesc = new BrowseDescription(nodeIdRoot, BrowseDirection.Forward, Identifiers.References, true, uint(NodeClass.Method.getValue()), uint(BrowseResultMask.All.getValue()));
BrowseResult browseResult = client.browse(browseDesc).get();
for (final ReferenceDescription rf : browseResult.getReferences()) {
final NodeId childId = rf.getNodeId().local().orElse(null);
List<Node> nodes = client.getAddressSpace().browse(childId).get();
for (Node node : nodes) {
// Now, I get the Node of method.
// How to get the method arguments data types?
system.out.println("need Input types {}" /*, InputArgument */);
system.out.println("will get Output types {}" /*, OutputArgument */);
}
}
最佳答案
方法节点具有对名为 InputArguments 和/或 OutputArguments 的属性节点的 HasProperty 引用,只要该方法接收输入或输出参数。
如果您读取这些节点的值属性,您将获得一个描述参数(名称、数据类型、ValueRank、ArrayDimensions、说明)的 Argument[]
。
UaMethodNode 有 getInputArguments
和 getOutputArguments
调用,也可以提供帮助:
UaMethodNode methodNode = (UaMethodNode) client.getAddressSpace().getNodeInstance(methodId).get();
CompletableFuture<Argument[]> iaf = methodNode
.getInputArguments()
.exceptionally(ex -> new Argument[0]);
CompletableFuture<Argument[]> oaf = methodNode
.getOutputArguments()
.exceptionally(ex -> new Argument[0]);
iaf.thenAcceptBoth(oaf, (ia, oa) -> {
System.out.println("inputArgs: " + Arrays.toString(ia));
System.out.println("outputArgs: " + Arrays.toString(oa));
});
关于java - eclipse 米洛 : How to get the DataType of method argument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61399160/
我是一名优秀的程序员,十分优秀!