泛型的返回值问题

rename
  • 84

请问这哥public static 后面接的<E>是什么意思,他和void一样都是返回值吗

public class GenericMethodTest
{
   // 泛型方法 printArray                         
   public static < E > void printArray( E[] inputArray )
   {
      // 输出数组元素            
         for ( E element : inputArray ){        
            System.out.printf( "%s ", element );
         }
         System.out.println();
    }
public static void main( String args[] )
{
    // 创建不同类型数组: Integer, Double 和 Character
    Integer[] intArray = { 1, 2, 3, 4, 5 };
    Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
    Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };

    System.out.println( "整型数组元素为:" );
    printArray( intArray  ); // 传递一个整型数组

    System.out.println( "\n双精度型数组元素为:" );
    printArray( doubleArray ); // 传递一个双精度型数组

    System.out.println( "\n字符型数组元素为:" );
    printArray( charArray ); // 传递一个字符型数组
} 

}

回复
阅读 584
1 个回答
✓ 已被采纳

<E> 表示在这个方法里面声明了一个泛型,紧接着他就在方法参数那里就用到了,E[] ,跟 void 没关系。

如果不使用泛型的话,你就需要分别实现 int、double、char 等等的重载

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏