对以下'仿制药感到困惑'码

时间:2015-06-11 12:09:57

标签: java generics

我似乎无法完全理解以下陈述。

<T> T[] toArray( T[] a );

虽然,我明白上面的语句是一个函数的声明,它应该能够接受并返回T类型对象的数组......我不明白为什么

1 - 两个T未被<>

包围

2 - 似乎有2种返回类型,如<T>&amp; T[]

3 个答案:

答案 0 :(得分:6)

<T>不是返回类型。它是该方法使用的泛型类型参数的声明。一旦声明,它就可以在没有<>;

的方法签名中使用

答案 1 :(得分:1)

  1. 声明该方法由T参数化,而不是例如包含类。有角度的括号是语法的一部分,而不是变量名称

  2. 与1中一样,不是返回类型

答案 2 :(得分:0)

返回类型为T[]而非<T>。什么表明该方法是泛型类型,实现应该相应地处理类型。

两个T未被&lt;&gt;包围是输入参数类型和返回类型。在这种情况下,两者应该相同。