Nashorn:Java接口

Nashorn:Java接口,java,nashorn,Java,Nashorn,Nashorn对我来说是一个新的平台,我对它做的不多,但现在需要使用以下Java行来访问InputStream对象: InputStream is = IOUtils.toInputStream(body, "UTF-8"); // Java 问题是IOUtils.toInputStream在写入时返回类java.io.ByteArrayInputStream: var is = IOUtils.toInputStream(body, "UTF-8"); //JS in Nashorn 我需

Nashorn对我来说是一个新的平台,我对它做的不多,但现在需要使用以下Java行来访问InputStream对象:

InputStream is = IOUtils.toInputStream(body, "UTF-8"); // Java
问题是IOUtils.toInputStream在写入时返回类java.io.ByteArrayInputStream:

var is = IOUtils.toInputStream(body, "UTF-8"); //JS in Nashorn

我需要将“is”var作为InputStream,而不是其他任何东西将其传递到另一个Java类中。如何在Nashorn平台上获取实际的InputStream对象?非常感谢

我找到了一个更好的库来读取XML,它在Nashorn中无缝工作:

var XmlSlurper = Java.type('groovy.util.XmlSlurper');
var rootNode = new XmlSlurper().parseText(rsp.body); 
var structuredDoc = rootNode.children().getAt(0);

请澄清。。。我们可以假设第二行是JS吗?
java.io.ByteArrayInputStream
java.io.InputStream
的直接子类,这意味着它继承了
java.io.InputStream
的所有方法和属性。因此,您可以将
is
视为一个
InputStream
@Jean BaptisteYunès:为了清晰起见,我做了一个注释,但是的,var行是JS。@YosiPramajaya:同意,但当我将其视为InputStream时,我在尝试将其传递到另一个需要InputStream的API时出错,错误:由:org.xml.sax.saxpassessexception;prolog中不允许引用。这与
InputStream
实现类型无关。您的标记有问题。看见