java有界泛型定义

Dón*_*nal 21 java generics

以下类型定义之间的区别是什么

<E extends Number>
Run Code Online (Sandbox Code Playgroud)

<? extends Number>
Run Code Online (Sandbox Code Playgroud)

干杯,唐

Jon*_*eet 22

这个版本:

<? extends Number> 
Run Code Online (Sandbox Code Playgroud)

可以出现在非泛型方法/类型中,它基本上意味着"我不关心类型是什么,只要它源自Number.我不会真正使用该类型,我只需要它适当."

这个版本:

<E extends Number>
Run Code Online (Sandbox Code Playgroud)

要求E是一个类型参数.它允许您执行更多操作(例如,ArrayList<E>稍后创建),但额外的类型参数可能会使事情变得更复杂,而您实际上并不需要它们.

  • 实际上,在阅读Effective Java时我遇到了这个问题! (2认同)