Java 泛型方法的返回类型

我想知道为什么不返回任何东西的泛型方法(或可以)以这种方式声明: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>


答案 1

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

enter image description hereenter image description here


答案 2

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

它不是返回类型 - 它位于类型参数声明之后,紧邻方法名称之前。因此,您的问题中方法的返回类型仍然是 。printArrayvoid

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