此代码编译:类型参数具有多个限制
import java.io.Serializable;
import java.util.Arrays;
class Test<T extends Arrays & Serializable> { }
,但如果我
class Test<T extends Serializable & Arrays> { }
替换最后一行我得到“界面这里预期”。为什么?
此代码编译:类型参数具有多个限制
import java.io.Serializable;
import java.util.Arrays;
class Test<T extends Arrays & Serializable> { }
,但如果我
class Test<T extends Serializable & Arrays> { }
替换最后一行我得到“界面这里预期”。为什么?
声明为类型参数具有结合的每种类型的变量。如果没有为类型变量声明绑定,则假定为Object。如果绑定被声明,它包括以下任一:
单一类型的变量T,或
一个类或接口类型T可能跟随接口类型I1 & ... &在。
如果任何类型I1 ... In是类类型或类型变量,则是编译时错误。
所以基本上,如果你的界限包括一个类,它必须是第一个界限。
(鉴于Arrays
不能被实例化,目前还不清楚为什么你会想绑定,包括它,你要知道......这是只是一个例子吗?)
如果边界之一是类,它必须先指定。
«这只是一个例子?»是的:-)我只是试验有界的类型参数。谢谢您的回答。 – Gmacar 2012-04-02 15:07:54