我在包foo
,FooImmutableCatUser
中有一个类,希望使用包ImmutableCat
中定义的不可变bar
对象。但是,即使正确导入FooImmutableCatUser
,我仍然无法在foo
包中识别ImmutableCat
。导入错误(未使用的导入)和构建会在error: cannot find symbol
产生错误:ImmutableCat.of()
。
bar
中的我的目录结构如下:
\bar
\models
\Cat.java
Cat.java定义为
package bar.models;
import org.immutables.value.Value;
@Value.Immutable
public interface Cat {
String getName();
Object getValue();
}
这正确编译为ImmutableCat
对象。
我尝试在FooImmutableCatUser
中访问此内容,如下所示:
ImmutableCat.of("myString", myObject)
。
但是,这会从IntelliJ和Gradle中抛出error: cannot find symbol
。
我很确定我之前看到过使用其他软件包中的Immutables的代码。在构建时,如何让gradle或IntelliJ识别其他包中的Immutables?我需要在某处列出一个包依赖吗?
编辑:我已经尝试通过APT instructions from Immutable使用intellij启用注释。我已按照这些说明操作,但仍然无法识别Immutables,可能是由于gradle和Intellij指定了不同的构建输出目录。也许这就是问题 - 如果解决这个问题,我会在这里回复。