java - 我如何从 Groovy 构造一个(非静态的)Java 内部类

标签 java groovy inner-classes

如果我有一个带有这样内部类的类:

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 类]?

最佳答案

我让它像这样工作:

def a = new A()
A.B.newInstance(a, "foo")

还有这样的:

def a = new A()
new A.B(a, "foo")

不过,如果 Java 代码在您的控制之下而不是外部库,我宁愿使用工厂方法。

关于java - 我如何从 Groovy 构造一个(非静态的)Java 内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27980332/

相关文章:

java - spring mvc - 如何在不创建 View 的情况下从 Controller 检索值

java - 使用 groovy 脚本引擎(GroovyClassLoader)运行包含新行 "\n"的 java 代码时出现 GroovyCastException

java - 外部类成员变量null转内部类

java - final 局部变量无法赋值,因为它是在封闭类型中定义的

java - LinkedHashSet 不主要插入顺序吗?

java - 复制/粘贴在签名的小程序中不起作用

groovy - 使用数组类型更新Elasticsearch Doc字段

bash - 在 Jenkins 中使用脚本在不同阶段运行

java - 通过名称创建内部静态类实例

java - Cordova 和 JDK 相互矛盾 : Requirements check failed for JDK 1. 8 或更大