Java 用于抽象类的Google Guice和Lombok-@AllArgsConstructor(onConstructor=@_uu(@Inject))

Java 用于抽象类的Google Guice和Lombok-@AllArgsConstructor(onConstructor=@_uu(@Inject)),java,guice,lombok,Java,Guice,Lombok,我发现@allargsconstuctor(onConstructor=@_u(@Inject))有助于在使用Google Guice时保持代码整洁。我可以保存构造函数代码。例如: @AllArgsConstructor(onConstructor = @__(@Inject)) public class SomeClass { private final DependentClassOne classOne; private final DependentClassTwo cl

我发现
@allargsconstuctor(onConstructor=@_u(@Inject))
有助于在使用Google Guice时保持代码整洁。我可以保存构造函数代码。例如:

@AllArgsConstructor(onConstructor = @__(@Inject))
public class SomeClass {
    private final DependentClassOne classOne;
    private final DependentClassTwo classTwo;

    // ...
}
对于
abstract
类,我可以将
@Inject
用于构造函数

@AllArgsConstructor(onConstructor = @__(@Inject))
public abstract class AbstractParentClass {
    private final DependentClassOne classOne;
}

public class ChildClass extends AbstractParentClass {
    private final DependentClassTwo classTwo;

    @Inject
    public ChildClass(final DependentClassOne classOne, final DependentClassTwo classTwo) {
        super(classOne);
        this.classTwo = classTwo;
    }
}

是否可以使用类似于
@allargsconstuctor(onConstructor=@uuu(@Inject))
的方法将构造函数代码保存在
ChildClass
中?

否,由于Lombok的限制,如果存在父构造函数,则无法在子类中定义
allargsconstuctor
(请参见此项和另一项)

您可以将父级中的字段/设置器注入与子级中的构造函数注入混合使用,但我建议避免这种情况