'&'之间有什么区别和','在Java泛型?

时间:2013-08-22 13:32:17

标签: java generics

在阅读有关泛型的Java官方教程时,我发现您可以限制类型参数(在本例中为T)以使用'and'运算符({{}扩展类和/或更多接口。 1}})像这样:

&

我将<T extends MyClass & Serializable> 替换为&(错误地仍然有效,并发出轻微警告)。

我的问题是,这两者之间有什么区别:

,

示例方法:

<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma

1 个答案:

答案 0 :(得分:169)

<T extends MyClass & Serializable>

这断言单一类型参数T必须扩展MyClass,且必须为Serializable

<T extends MyClass , Serializable>

声明两个类型参数,一个名为T(必须扩展MyClass),另一个名为Serializable(其中隐藏java.io.Serializable - 这可能是警告的内容。)