输入尖括号内的数字-是什么意思?

时间:2018-11-15 14:28:17

标签: java

在处理其他人的代码时,我发现了一些奇怪的构造,对我来说,在互联网上找不到任何解释。这是JavaFXML应用程序中的整个方法:

library(magrittr)
df %>% apply(1, . %>% print(.[1])) # wrong

以下是我不太清楚的那一行:

private void logInUser(User selectedUser) throws IOException {
    FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/movierecsys/gui/view/MovieRecView.fxml"));
    Parent root1 = (Parent) fxmlLoader.load();
    fxmlLoader.<MovieRecController>getController().setInfo(selectedUser);
    Stage stage = (Stage) loginButton.getScene().getWindow();
    stage.setScene(new Scene(root1));
    stage.show();
}

fxmlLoader.<MovieRecController>getController().setInfo(selectedUser); 到底是什么意思?它看起来像类型转换,但我在进行此转换结构之前从未见过,对此我可以找到任何解释。

1 个答案:

答案 0 :(得分:-1)

它称为type witness

  

通用方法addBox定义了一个名为U的类型参数。通常,Java编译器可以推断通用方法调用的类型参数。因此,在大多数情况下,您不必指定它们。例如,要调用通用方法addBox,可以使用以下类型见证人指定type参数:

BoxDemo.<Integer>addBox(Integer.valueOf(10), listOfIntegerBoxes);
     

或者,如果您省略类型见证人,则Java编译器会自动(根据方法的参数)推断类型参数为Integer:

BoxDemo.addBox(Integer.valueOf(20), listOfIntegerBoxes);