我在一些与 JavaFX 相关的代码中看到了一种新形式的类型转换。它的奇怪之处在于它的功能类似于类型转换,但我找不到它 under the categories of casting in Java 8 Specifications 。这是一个例子:
FXMLLoader loader = new FXMLLoader(getClass().getResource("tabs/tabbedWin.fxml"));
TabbedWinController twc1 = loader.<TabbedWinController>getController();
TabbedWinController twc2 = (TabbedWinController) loader.getController();
最后两行似乎做同样的工作,但我想知道 twc1
前面的语法是什么意思是?这对我来说是全新的。
如果是类型转换,为什么我不能使用像 int i = <Integer> f;
这样的语句其中 f 是浮点变量?
所以我很想知道它是什么?从什么时候开始它被添加到 Java 中了?我应该/可以/不应该在哪里使用它?
最佳答案
这是为 static
方法指定泛型类型的方式。自从 Java 5 中发布泛型以来,它就已经可用了。
List<String> emptyListOfStrings = Collections.<String> emptyList();
在您的情况下,两种形式都可以正常工作,因为 getController
方法返回指定泛型类型的对象。
参见here进行讨论。
关于java - Java 8 中的新类型转换还是我犯了一个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23135799/