Java 是否可以引用构造函数中初始化的.ui.xml中的字段变量?
我试图通过UiBinder/ui.xml将一个参数传递给复合的(Java 是否可以引用构造函数中初始化的.ui.xml中的字段变量?,java,gwt,Java,Gwt,我试图通过UiBinder/ui.xml将一个参数传递给复合的(registrationViewer)构造函数 我的View.ui.xml如下所示: ... <ui:with field='registration' type='com.example.dto.RegistrationDTO'/> ... <composites:RegistrationViewer ui:field="registrationViewer" registrati
registrationViewer
)构造函数
我的View.ui.xml
如下所示:
...
<ui:with field='registration' type='com.example.dto.RegistrationDTO'/>
...
<composites:RegistrationViewer ui:field="registrationViewer" registration="{registration}"/>
...
...
@UiField @Ignore public RegistrationDTO registration;
@UiField RegistrationViewer registrationViewer;
public View(RegistrationDTO registration) {
this.registration = registration;
initWidget(uiBinder.createAndBindUi(this));
}
MyRegistrationViewer.java
:
private final RegistrationDTO registration;
@UiConstructor
public RegistrationViewer(RegistrationDTO registration) {
this.registration = registration;
initWidget(uiBinder.createAndBindUi(this));
}
但是,在RegistrationViewer
构造函数中,registration
参数的所有字段都为空。GWT似乎没有选择正确的RegistrationDTO
实例并尝试创建它的新实例
我的问题是:我想做的是什么?可能吗?
@UiField
提供了一个属性,其默认值为false
,这意味着UiBinder将创建一个实例并将其分配给字段。如果您自己提供值,则将其设置为true:
@UiField(provided = true) RegistrationDTO registration;
(顺便说一句,当您从构造函数中设置它时,我甚至会将字段设置为final
)