小编zur*_*zur的帖子

Lombok @builder在一个扩展另一个类的类上

我有两个课程Child延伸Parent.我需要在类上放置@Builder注释,这样我就不需要自己创建构建器了.

package jerry;// Internal compiler error: java.lang.NullPointerException

import lombok.AllArgsConstructor;
import lombok.Builder;

@AllArgsConstructor(onConstructor=@__(@Builder))
public class Child extends Parent { 
//Multiple markers at this line
//  - Implicit super constructor Parent() is undefined. Must explicitly invoke another constructor
//  - overrides java.lang.Object.toString

   private String a;
   private int b;
   private boolean c;

}


@Builder
public class Parent {
    private double d;
    private float e;
}
Run Code Online (Sandbox Code Playgroud)

我需要能够构建这样的子实例

Child child = Child.builder().a("aVal").b(1000).c(true).d(10.1).e(20.0F).build();
Run Code Online (Sandbox Code Playgroud)

但到目前为止,我收到了代码注释中提到的错误.任何人都可以指出我正确的方向如何使用lombok或任何其他类似的库实现它?

子问题

为什么@AllArgsConstructor(onConstructor=@__(@Autowired))编译但@AllArgsConstructor(onConstructor=@__(@Builder))不是?

java spring hibernate lombok

28
推荐指数
3
解决办法
4万
查看次数

Spring:将@RequestBody 注入@Bean

我想requestScopedBean.userDetails在我的控制器update(...)执行时/执行之前填充。

在我的spring web项目中,我有基于java的MyConfiguration extends WebMvcConfigurerAdapter我有:

@Bean(name = "requestScopedBean")
@Scope(value = "prototype")
public RequestScopedBean requestScopedBean() {
    return new RequestScopedBean();
}
Run Code Online (Sandbox Code Playgroud)

RequestScopedBean.java

public class RequestScopedBean {

    public @Autowired UserDetails userDetails;

    public void setUserDetails(UserDetails pUserDetails){
        userDetails = pUserDetails;
    }

    @Override
    public String toString() {
        return "" + (userDetails != null) ;
    }
}
Run Code Online (Sandbox Code Playgroud)

UserDetails.java

public class UserDetails {
    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection spring-mvc autowired

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