返回Java通用方法的类型

我想知道为什么通过这种方式声明(或可以)声明返回voidgenerics方法:

  public static  void printArray( E[] inputArray ) { // Display array elements for ( E element : inputArray ){ System.out.printf( "%s ", element ); } System.out.println(); } 

似乎是返回对象的类型,但该方法实际上没有返回任何内容。 那么在这种情况下具体含义是什么?一般来说,通用方法是什么?

这个问题适合我的一个旧笔记。 我希望这个插图有帮助:

在此处输入图像描述在此处输入图像描述

是generics类型参数声明。 这意味着“此方法具有单个类型参数,称为E ,可以是任何类型”。

它不是返回类型 – 在类型参数声明之后,就在方法名称之前。 因此,问题中printArray方法的返回类型仍然void

有关方法声明的更多详细信息,请参见JLS的8.4节 。

它不是返回对象的类型。 它表示方法签名中的E是generics类型而不是具体类型。 没有它,编译器会为方法的参数寻找一个名为E的类。

称为forms类型参数。 它不是方法的返回类型。 它基本上说该方法可以接受不同类型的参数数组(E [] inputArray)。

E用作实际类型的占位符,该函数将在此函数调用时传递给Gen函数。

假设E可以用整数代替