Java 如何在groovy类中调用接口的默认方法
我有一个groovy类页面,它实现了一个名为IImageOperations的接口 此接口包含默认方法addImage。我想从Page类调用它 我试着用下面的方式打电话Java 如何在groovy类中调用接口的默认方法,java,groovy,Java,Groovy,我有一个groovy类页面,它实现了一个名为IImageOperations的接口 此接口包含默认方法addImage。我想从Page类调用它 我试着用下面的方式打电话 class Page implements IImageOperations, ITextOperations { void addImage(PDImageXObject image, float x, float y, float w = 0, float h = 0, float rotate = 0, boolean
class Page implements IImageOperations, ITextOperations {
void addImage(PDImageXObject image, float x, float y, float w = 0, float h = 0, float rotate = 0, boolean inline){
if(w == 0)
w = image.getWidth();
if(h == 0)
h = image.getHeight();
IImageOperations.super.addImage("", 0, 0);
}
}
但是,它给了我以下的错误
Groovy:Class.this和Class.super仅允许在嵌套/内部类中使用。
如果我们将这个页面类定义为Java类,那么一切正常。下面是正确的Java代码
import java.lang.reflect.Type;
public class A implements Type{
public static void main(String [] arg){
new A().run();
}
public void run(){
System.out.println( Type.super.getTypeName() );
}
}
未能在groovy下编译:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
A.groovy: 10: The usage of 'Class.this' and 'Class.super' is only allowed in nested/inner classes.
@ line 10, column 23.
System.out.println( Type.super.getTypeName() );
但是,以下语法可以正常工作(groovy 2.4.11):
您是否尝试过简单的
添加图像(“,0,0)
?请提供如何声明您的类。@SzymonStepniak,是的,我尝试过,eclipse仍在显示error@daggett--添加了完整的groovyclass@daggett--谢谢你的帮助。似乎我们可以直接使用它,而不需要超级用户。Eclipse显示错误。
import java.lang.reflect.Type;
public class A implements Type{
public static void main(String [] arg){
new A().run();
}
public void run(){
//System.out.println( Type.super.getTypeName() );
System.out.println( ((Type)this).getTypeName() );
}
}