我在我的 Java 界面中使用 Immutables ( http://immutables.org ) 来生成构建器和不可变对象。我创建了一个名为 @Primary 的自定义方法级别注释(表示哪个属性是主字段),我用它来注释我在 Immutable 接口中的一个方法。我在由不可变对象创建的生成的 java 类中看不到注释。我尝试查看 BYOA(自带注释),但这无济于事。
有没有办法将 @Primary 注释放到生成的不可变 java 类上?
更新(基于肖恩的以下建议)
我现在有一个基于以下配置
包信息.java
package com.mypackage;
import com.mercuria.recon.custom.annotation.Primary;
import org.immutables.value.Value;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.PACKAGE, ElementType.TYPE})
@Retention(RetentionPolicy.CLASS) // Make it class retention for incremental compilation
@Value.Style(passAnnotations=Primary.class)
public @interface MyStyle {}
主要注释
package com.mypackage.custom.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Primary {
}
我在 package-info.json 中看到一个错误,其中说 MyStyle 应该在其自己的文件中声明。我不确定上面的配置是否正确。请你能告诉我哪里出错了吗?