如何从 Groovy 构建(非静态)Java 内部 class
How do I construct a (non-static) Java inner class from Groovy
如果我有一个 class,内部 class 是这样的:
public class A {
class B { //note, no modifier on class or constructor
B(String c) {System.out.println(c);}
}
}
来自 Java(在同一个包中)我可以这样做:
public class C {
public static void main(String[] args) {
A a = new A();
System.out.println(a. new B("test")); //crazy syntax!
}
}
但在 Groovy 中,这是行不通的。那么我如何构建一个新的 B [来自同一包中的 groovy class]?
试试这个
A a = new A();
System.out.println(new B(a, "test")); //crazy syntax!
我是这样工作的:
def a = new A()
A.B.newInstance(a, "foo")
还有这样的:
def a = new A()
new A.B(a, "foo")
如果 Java 代码在您的控制之下而不是外部库,我宁愿使用工厂方法。
如果我有一个 class,内部 class 是这样的:
public class A {
class B { //note, no modifier on class or constructor
B(String c) {System.out.println(c);}
}
}
来自 Java(在同一个包中)我可以这样做:
public class C {
public static void main(String[] args) {
A a = new A();
System.out.println(a. new B("test")); //crazy syntax!
}
}
但在 Groovy 中,这是行不通的。那么我如何构建一个新的 B [来自同一包中的 groovy class]?
试试这个
A a = new A();
System.out.println(new B(a, "test")); //crazy syntax!
我是这样工作的:
def a = new A()
A.B.newInstance(a, "foo")
还有这样的:
def a = new A()
new A.B(a, "foo")
如果 Java 代码在您的控制之下而不是外部库,我宁愿使用工厂方法。