小编Pav*_* V.的帖子

无法从.java类访问带有参数的@Immutable类的构造方法

我清理生成的.class文件,然后重新构建我的应用程序。如果第一次调用生成的AST构造函数是从.java类发生的,则会收到错误消息。但是,如果我首先调用由@Immutable.groovy类中的注释生成的构造函数,则它对于.java类是可见的,因为已经生成了字节码并且没有发生错误。

所以,我想知道我怎么设置gradle这个所以编译所有的Groovy类与所需的AST转换第一个,这样我就可以从的.java类正确地使用它?另外,@Builder由于javac没有看到任何ClassName.bulder()方法,我如何使用.java类生成的代码?

  1. 这是我与ASTT的.groovy课

    @Immutable class A {
        String a;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 这是我从.java类中调用其构造函数的方法

    public class Test {
         A b = new A("321");
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我得到的错误是:

    错误:“类[已跳过]中的构造函数无法应用于给定类型;必需:未找到参数:[已跳过]原因:实际参数和形式参数列表的长度不同”。

我正在使用Intellij IDEA 14.4和Gradle进行构建。

java groovy abstract-syntax-tree gradle

5
推荐指数
1
解决办法
388
查看次数

标签 统计

abstract-syntax-tree ×1

gradle ×1

groovy ×1

java ×1