Android Studio找不到来自lombok的AllArgsConstructor

Ohm*_*men 20 java android lombok android-studio

当我创建一个包含一个或多个字段的新Java类并将@AllArgsConstructor注释从lombok 附加到它时,我收到此消息

Error:(9, 1) error: cannot find symbol class ConstructorProperties

从Gradle Build控制台上.通过使用此配置创建一个新的空Android项目,我能够重现这一点.

类(从未使用或实例化)

@lombok.AllArgsConstructor
public class Model {
    int foo;
    String bar;
}
Run Code Online (Sandbox Code Playgroud)

的build.gradle:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
provided 'org.projectlombok:lombok:1.14.8'
}
Run Code Online (Sandbox Code Playgroud)

@Getter并且@Setter从lombok不会引起任何问题,即使@NoArgsConstructor没有gradle提到,AllArgsConstructor如果没有字段也是如此.

这是来自Lombok的错误还是这个错误位于屏幕前方?

Roe*_*ker 48

Lombok @ConstructorProperties默认为所有生成的构造函数生成.在Android上,该注释不可用.如文档中所述,可以通过指定suppressConstructorProperties=true每个@XxxArgsConstructor或在高级lombok.config文件中使用以下行来抑制生成:

lombok.anyConstructor.suppressConstructorProperties = true
Run Code Online (Sandbox Code Playgroud)

披露:我是Lombok开发人员


Shu*_*ary 27

您需要在AllArgsConstructors中添加抑制.如果您不想添加新的配置文件,只需执行以下操作:

@AllArgsConstructor(suppressConstructorProperties = true)
Run Code Online (Sandbox Code Playgroud)

披露:我不是龙目岛的开发者:D

  • 爱你的披露:-) (8认同)