Java通用方法的返回类型

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我想知道为什么泛型方法不会返回任何内容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>在这种情况下,通常在泛型方法中真正的意义是什么?

提问于
用户回答回答于

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

用户回答回答于

<E>是泛型类型参数声明。它意味着“这个方法有一个单一的类型参数,叫做E,可以是任何类型”。

这不是返回类型-随附的类型参数声明,只是方法名之前。所以printArray你问题中的方法的返回类型仍然是void

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

扫码关注云+社区