我想使用DefaultGroovyMethodsSupport中的一些方法,例如“ closeQuietly”。
示例:
FileOutputStream out = new FileOutputStream("out.txt");
out.closeQuietly();
这将引发异常:
捕获:groovy.lang.MissingMethodException:方法的无签名:java.io.FileOutputStream.closeQuietly()适用于参数类型:()值:[]
当我以这种方式调用它时,它将起作用:
FileOutputStream out = new FileOutputStream("out.txt");
DefaultGroovyMethods.closeQuietly(out);
为什么不能应用DefaultGroovyMethods中的方法?
答案 0 :(得分:0)
您不能在closeQuietly
的实例上调用FileOutputStream
,因为它不是Groovy向此类(或其任何父类)添加的方法。实际上,Groovy并未向FileOutputStream
添加任何方法,但确实为其OutputStream
父级添加了一些方法。
使用GDK documentation查看Groovy向JDK类添加了哪些方法。
DefaultGroovyMethods.closeQuietly
只是一个常规的静态方法,因此您可以.....静态地调用它,例如
FileOutputStream out = new FileOutputStream("out.txt");
DefaultGroovyMethods.closeQuietly(out);