【发布时间】:2018-05-28 15:23:50
【问题描述】:
我有一个超类
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ErrorResponse {
@JsonProperty
private String message;
}
我有一个孩子
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder(builderMethodName = "_builder") // add custom builder name to avoid compilation issue 'return type is not compatible...'
@EqualsAndHashCode(callSuper=true)
public class AskQuestionErrorResponse extends ErrorResponse {
@JsonProperty
private String status;
@Builder(builderMethodName = "_builder") // add custom builder name to avoid compilation issue 'return type is not compatible...'
private AskQuestionErrorResponse(String status, String message){
super(message);
this.status = status;
}
}
当我使用构建器创建这样的对象时
AskQuestionErrorResponse._builder()
.status(1)
.message("my message here").build()
Intellij 以红色显示 message 并且存在问题 cannot resolve method 'message(java.lang.String)' 无论如何,即使出现此错误,项目也会编译并运行。
我已经启用了注释处理。
如果我像这样评论超类中的字段
AskQuestionErrorResponse._builder()
.status(ex.getStatus().getValue()
//.message(ex.getMessage()
).build()
它有效。似乎它没有看到超类成员。我也试过 maven clean and install,rebuild project。
注释处理器在Preferences 和Default preferences 中启用
【问题讨论】:
标签: intellij-idea lombok