返回Java通用方法的类型
我想知道为什么通过这种方式声明(或可以)声明返回void
generics方法:
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
的类。
E用作实际类型的占位符,该函数将在此函数调用时传递给Gen函数。
假设E可以用整数代替