gpt4 book ai didi

java - 是否可以从构造函数中初始化的 .ui.xml 引用字段变量?

转载 作者:行者123 更新时间:2023-11-30 06:59:27 25 4
gpt4 key购买 nike

我正在尝试通过 UiBinder/ui.xml 将参数传递给复合的 (registrationViewer) 构造函数。

我的 View.ui.xml 看起来像这样:

    ...
<ui:with field='registration' type='com.example.dto.RegistrationDTO'/>
...
<composites:RegistrationViewer ui:field="registrationViewer" registration="{registration}"/>
...

我的 View.java 看起来像这样:

    ...
@UiField @Ignore public RegistrationDTO registration;
@UiField RegistrationViewer registrationViewer;

public View(RegistrationDTO registration) {
this.registration = registration;
initWidget(uiBinder.createAndBindUi(this));
}

我的RegistrationViewer.java:

    private final RegistrationDTO registration;

@UiConstructor
public RegistrationViewer(RegistrationDTO registration) {
this.registration = registration;
initWidget(uiBinder.createAndBindUi(this));
}

但是,在RegistrationViewer 构造函数中,registration 参数的所有字段都为null。似乎 GWT 没有选择 RegistrationDTO 的正确实例并尝试创建它的新实例。

我的问题是:我正在尝试做什么 - 这甚至可能吗?

最佳答案

@UiField 有一个provided 属性,其默认值为false,这意味着UiBinder 将创建一个实例并将其分配给字段。如果您自己提供一个值,则将其设置为 true:

@UiField(provided = true) RegistrationDTO registration;

(顺便说一句,当你从构造函数中设置它时,我会尽量将字段设置为 final)

关于java - 是否可以从构造函数中初始化的 .ui.xml 引用字段变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31563180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com