2011-05-27 24 views
1

Googleに基づいて私はちょうど私が必要としたようにジップをパックする小さなGroovyスクリプトを書くことができました。Groovy、ZipOutputStreamで<<演算子をオーバーロード

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についてもっと知りたいです。:-)

答えて

2

Groovyはいくつかの基本的なJavaクラスに、より多くのメソッドを追加しました。これは、のgroovyウェイで使用するためです。完全な概要は、http://groovy.codehaus.org/groovy-jdkを参照してください。あなたのケースでは、方法leftShiftがクラスOutputStreamに追加されました。 Groovyは<<演算子もオーバーロードします。したがって、オブジェクトのメソッドleftShiftを呼び出すのと同じです。

+0

ありがとうございます、今すぐクリアしてください:-) – jabal

関連する問題