gpt4 book ai didi

generics - JavaFX 构建器/Java 泛型

转载 作者:行者123 更新时间:2023-12-04 18:22:06 30 4
gpt4 key购买 nike

我想重新使用一个 Builder 实例来创建几个控件,但是我遇到了我不理解的编译错误。我认为它们是由于我没有正确理解泛型造成的。任何人都可以帮忙吗?

ButtonBuilder builder = ButtonBuilder.create().minHeight(40.0).minWidth(40.0);
Button button1 = builder.onAction(clickHandler).build(); // Error
Button button2 = ButtonBuilder.create().minHeight(40.0).minWidth(40.0).onAction(clickHandler).build(); //OK

其中 clickHandler 是 EventHandler<ActionEvent>
我得到的错误是
error: cannot find symbol
Button button1 = builder.onAction(clickHandler).build();
^
symbol: method build()
location: class ButtonBaseBuilder

ButtonBaseBuilder 实现了 Builder 所以它应该有一个 build() 方法,不是吗?此外,如果我将所有内容一起运行(如在 button2 中),那就没问题了。

这是在 JDK 7.0u4 和 JavaFX SDK 2.1 上

提前致谢,
皮特

最佳答案

您需要传递 ButtonBuilder 通用参数才能以这种方式使用构建器:

    ButtonBuilder<? extends ButtonBuilder> builder =
ButtonBuilder.create().minHeight(40.0).minWidth(40.0);
Button button1 = builder.onAction(clickHandler).build();

关于generics - JavaFX 构建器/Java 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10446967/

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