首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java泛型方法的返回类型

Java泛型方法的返回类型
EN

Stack Overflow用户
提问于 2012-07-08 01:39:11
回答 4查看 14.7K关注 0票数 30

我想知道为什么不返回任何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>的真正含义是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-04 21:22:07

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

票数 122
EN

Stack Overflow用户

发布于 2012-07-08 01:41:57

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

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

有关方法声明的更多详细信息,请参阅section 8.4 of the JLS

票数 9
EN

Stack Overflow用户

发布于 2012-07-08 01:41:51

它不是返回对象的类型。它指示方法签名中的E是泛型类型,而不是具体类型。如果没有它,编译器将为该方法的参数查找一个名为E的类。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11377248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档