generics - JavaFX 构建器/Java 泛型

标签 generics javafx-2

我想重新使用 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/

相关文章:

Javafx:使用主题标签和号码实时更新电话号码文本字段

java - 如何在webview(javaFX)中使用javascript(桥)调用的executeScript

java - Graphics2D 和 GraphicsContext 之间的互操作性

css - JavaFX2 : What is the best way to style an individual TreeItem?

c# - 如何使用泛型在基类的方法中指定输出参数的类型?

返回两个或多个泛型类型的 Java 方法

c# - 连接的通用类的转换问题

java - 有人可以向我解释基本的 Java 泛型吗?

Java 通配符转换最佳实践

Javafx:TableView根据列值更改行颜色