我想知道为什么不返回任何void
的泛型方法被这样声明(或者可以这样声明):
public static <E> void printArray( E[] inputArray ) {
// Display array elements
for ( E element : inputArray ){
System.out.printf( "%s ", element );
}
System.out.println();
}
看起来<E>
是返回对象的类型,但该方法实际上不返回任何内容。那么,在这种情况下,<E>
的真正含义是什么?
发布于 2013-04-04 21:22:07
这个问题很适合我以前的一个笔记。我希望这个插图能有所帮助:
发布于 2012-07-08 01:41:57
<E>
是泛型类型参数声明。这意味着“这个方法只有一个类型参数,叫做E
,它可以是任何类型”。
它不是返回类型--它在类型参数声明之后,就在方法名之前。所以问题中printArray
方法的返回类型仍然是void
。
有关方法声明的更多详细信息,请参阅section 8.4 of the JLS。
发布于 2012-07-08 01:41:51
它不是返回对象的类型。它指示方法签名中的E
是泛型类型,而不是具体类型。如果没有它,编译器将为该方法的参数查找一个名为E
的类。
https://stackoverflow.com/questions/11377248
复制相似问题