定义高级

Java 存在类型擦除机制.

故运行时难以确定泛型参数(我当然知道可以确定只是成本高).

有各种魔法方式尝试从List<A>中取出一个obj并防御式的判断下 obj instanceof A.

这是我很不喜欢的一个特性,我看不出好处在哪里.

然后读了一些文章.他们发明了一些词汇 List<Integer> 转List<Number>叫协变(起这个名字有什么依据吗).

List<*>叫 星投影(看着好像List<?>).

虽然这样也是,怎么说吧,还可以吧.(以上两个是kotlin)

但是它没有解决我的问题啊.

我的问题是我的一个定义无法在语法上严格限定类型,而需要使用.getClass这种技巧.

协变对我有帮助吗,星投影对我有帮助吗.

好多特性的确是在创造更多的名,求得个别场景下貌似的进步.

这些名代价太大了,然后我们管这东西叫高级用法.

我是支持Stream的,因为它是个通用概念,Java中的Stream和其他语言的Stream是一样的.

然而我从来不会使用<?>

它太贵了 还是<T>好用

原文地址:https://www.cnblogs.com/user-for-once/p/13188047.html