Как создать (нестатический) внутренний класс Java из Groovy
Если у меня есть класс с внутренним классом, например:
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 в том же пакете]?
Ответы
Ответ 1
У меня это получилось так:
def a = new A()
A.B.newInstance(a, "foo")
А также вот так:
def a = new A()
new A.B(a, "foo")
Если код Java находится под вашим контролем, а не является внешней библиотекой, я бы скорее использовал метод factory.
Ответ 2
попробуйте это
A a = new A();
System.out.println(new B(a, "test")); //crazy syntax!