繁体   English   中英

没有括号的泛型静态方法,例如在JavaFX 8中

[英]Generic static methods without brackets, e.g. in JavaFX 8

我已经在FXML文件中定义了一个GUI,并且在相应的控制器中具有以下代码:

@FXML
private TableColumn<Abnormality, String> abnormalityTableViewStatusTableColumn;

稍后在initialize()方法中,我有:

abnormalityTableViewStatusTableColumn.setCellFactory(
            ComboBoxTableCell.<Abnormality, String> forTableColumn("Option1", "Option2", "Option3"));

API TableColumn-方法setCellFactoryAPI ComboBoxTableCell-方法forTableColumn

但是编译器也会接受

abnormalityTableViewStatusTableColumn.setCellFactory(
            ComboBoxTableCell.forTableColumn("Option1", "Option2", "Option3"));

没有通用括号。

在第二种情况下,编译器是否会自动解析类型?

谢谢您的帮助!

是; Java 8在类型推断方面对以前的版本进行了一些改进。 在Java 8中,编译器能够从上下文中推断出(您将forTableColumn的结果forTableColumn到期望Callback<TableColumn<Abnormality, String>, TableCell<Abnormality, String>> )泛型的类型方法是<Abnormality, String> 因为编译器可以进行推断,所以不需要显式提供类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM