Javafx 8 带有@NamedArgs:的JavaFX自定义控件无法绑定到非类型化对象

Javafx 8 带有@NamedArgs:的JavaFX自定义控件无法绑定到非类型化对象,javafx-8,fxml,fxmlloader,Javafx 8,Fxml,Fxmlloader,我想用带有两个自定义控件的FXML创建一个应用程序,其中一个控件需要对另一个控件的引用 第一个类通过构造函数参数获取对第二个类的引用。这也可以在带有@NamedArgs注释的FXML中找到 public SelectWeekControl(@NamedArg("dayControl") SelectDayControl selectDayControl) { this.selectDayControl = selectDayControl; ... } 现在,我想通过引用带有另

我想用带有两个自定义控件的FXML创建一个应用程序,其中一个控件需要对另一个控件的引用

第一个类通过构造函数参数获取对第二个类的引用。这也可以在带有
@NamedArgs
注释的FXML中找到

public SelectWeekControl(@NamedArg("dayControl") SelectDayControl selectDayControl) {
    this.selectDayControl = selectDayControl;
    ...
}
现在,我想通过引用带有另一个组件的
fx:id
@NamedArgs
字段,将这两个字段添加到FXML文件中

<SelectDayControl fx:id="daySelect"/>
<SelectWeekControl dayControl="${daySelect}" fx:id="weekSelect"/>

不幸的是,第二行失败,并显示以下错误消息:

原因:javafx.fxml.LoadException:无法绑定到非类型化对象


唯一提到同一问题的答案并不令人满意。

我不知道为什么您尝试的代码不起作用,但以下版本似乎可以:


并且(如果您需要FXML文件中其他地方定义的
SelectDayControl
)也可以


很酷,谢谢你,它很管用!但我想为其他有同样问题的人补充一些信息:
SelectDayControl
必须在
SelectWeekControl
之前定义,尽管第二种方法是有效的,IntelliJ用红色突出显示它并说“无法解析符号”