? 表示不确定的java类型。 T 表示java类型。 K V 分别代表java键值中的Key Value。 E 代表Element。Object跟这些东西代表的java类型有啥区别呢? Object是所有类的根类,是具体的一个类,使用的时候可能是需要类型强制转换的,但是用T ?等这些的话,在实际用之前类型就已经确定了,不需要强制转换。
int s = fun2("ssssssssssss"); 编译器会根据调用的返回值推断出是Integer类型。实际上虚拟机层面并不知道对象是不是泛型,一切都在编译时搞定的。
T 表示java类型。
K V 分别代表java键值中的Key Value。
E 代表Element。Object跟这些东西代表的java类型有啥区别呢?
Object是所有类的根类,是具体的一个类,使用的时候可能是需要类型强制转换的,但是用T ?等这些的话,在实际用之前类型就已经确定了,不需要强制转换。
编译器会根据调用的返回值推断出是Integer类型。实际上虚拟机层面并不知道对象是不是泛型,一切都在编译时搞定的。
然后你的方法return的是T
于是通过编译
只不过运行的时候会有runtimeexception