【发布时间】:2019-10-17 02:33:57
【问题描述】:
为什么 main 的第一行不抛出 ClassCastException 而第二行呢?
import java.util.function.Function;
class Scratch {
static <T> T getSomething(Function<Integer, T> fun) {
return (T) fun;
}
public static void main(String[] args) {
Scratch.<String>getSomething(x -> "hello");
String something = Scratch.<String>getSomething(x -> "hello");
}
}
【问题讨论】:
-
无法回答问题,但您显然正在尝试将 Function
转换为 String,这不太可能奏效。需要在某处调用 fun.apply。 -
因为你在第二种情况下使用了结果,而不是在第一种情况下。
标签: java generics unchecked-exception