如何解决Groovy,在ZipOutputStream上重载<<运算符
| 基于Google,我设法编写了一个Groovy脚本,根据需要打包了一个zip文件。ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream(\"${uid}.pufi\"));
ZipEntry mainentry = new ZipEntry(\'main.xml\')
zipOutput.putNextEntry(mainentry)
zipOutput << \"mainmainmain\"
zipOutput.closeEntry()
ZipEntry manifentry = new ZipEntry(\'manifest.xml\')
zipOutput.putNextEntry(manifentry)
zipOutput << new FileInputStream(options.manifest)
zipOutput.closeEntry()
它可以工作,但是我想知道Groovy如何找出在entry << \"foobar\"
或entry << new FileInputStream(..)
行上要调用的内容。正如我所见,ZipOutputStream是一个Java类,它的javadoc不包含任何方法,甚至可以使用String或InputStream参数来调用。您能解释一下它是如何工作的,并在哪里记录?我想进一步了解Groovy .. :-)
解决方法
Groovy向一些基本的Java类添加了其他方法,以便以更常规的方式使用它们。有关其他方法的完整概述,请参见http://groovy.codehaus.org/groovy-jdk。在您的情况下,方法
leftShift
已添加到类OutputStream。 Groovy还重载了<<
运算符,因此它与在对象上调用方法leftShift
相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。