在阅读有关泛型的Java官方教程时,我发现您可以限制类型参数(在本例中为T
)以使用'and'运算符({{}扩展类和/或更多接口。 1}})像这样:
&
我将<T extends MyClass & Serializable>
替换为&
(错误地仍然有效,并发出轻微警告)。
我的问题是,这两者之间有什么区别:
,
示例方法:
<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
答案 0 :(得分:169)
<T extends MyClass & Serializable>
这断言单一类型参数T
必须扩展MyClass
,且必须为Serializable
。
<T extends MyClass , Serializable>
此声明两个类型参数,一个名为T
(必须扩展MyClass
),另一个名为Serializable
(其中隐藏java.io.Serializable
- 这可能是警告的内容。)