使用 Lombok Builder 注入构造函数依赖
Inject constructor dependency using Lombok Builder
我有一个 class 文件如下
import com.google.inject.Inject;
import lombok.Builder;
@Builder
public class A {
private final B objB;
private final C objC;
@Inject
public A(B b, C c) {
this.objB = b;
this.objC = c;
}
}
现在,如果我必须在另一个 class 中使用此对象,.builder() 方法是否会处理注入的依赖项。
public class Main {
public void doSomething() {
A a = A.builder().build();
a.getObjB(); // Will it be null ?
a.getObjC(); // Will it be null ?
注入总是只有当你让 guice 处理实例创建时才有效。
所以当你使用
@Inject
private A a;
guice 会发现它需要一个 B 和一个 C 来创建 A 并注入它。
但是当你自己实例化 A 时,如果通过 new
或通过 builder()
guice 不知道实例创建,那么在你的例子中,B 和 C 将为空.
我有一个 class 文件如下
import com.google.inject.Inject;
import lombok.Builder;
@Builder
public class A {
private final B objB;
private final C objC;
@Inject
public A(B b, C c) {
this.objB = b;
this.objC = c;
}
}
现在,如果我必须在另一个 class 中使用此对象,.builder() 方法是否会处理注入的依赖项。
public class Main {
public void doSomething() {
A a = A.builder().build();
a.getObjB(); // Will it be null ?
a.getObjC(); // Will it be null ?
注入总是只有当你让 guice 处理实例创建时才有效。
所以当你使用
@Inject
private A a;
guice 会发现它需要一个 B 和一个 C 来创建 A 并注入它。
但是当你自己实例化 A 时,如果通过 new
或通过 builder()
guice 不知道实例创建,那么在你的例子中,B 和 C 将为空.