我有一个类文件,如下所示
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;
}
}
现在,如果我必须在另一个类中使用此对象,那么.builder()方法将处理正在注入的依赖项。
public class Main {
public void doSomething() {
A a = A.builder();
a.getObjB(); // Will it be null ?
a.getObjC(); // Will it be null ?
答案 0 :(得分:0)
注入始终只有当你让guice处理实例创建时才会起作用。
所以当你使用
时@Inject
private A a;
guice会发现它需要一个B和一个C来创建A并注入它。
但是当你自己实例化A时,如果通过new
或通过builder()
guice不知道实例创建,则无关紧要,因此在你的例子中,B和C将为null。 / p>