以下方法定义的第一部分是什么?
<I, O> MyReturnType<I, O> myMethod() { ... }
第二个是方法&#39; sreturn类型,第三个是方法名称,但第一个是什么?
答案 0 :(得分:2)
I
和O
被声明为泛型类型参数。它们是方法本身引入的泛型类型,如下所述:https://docs.oracle.com/javase/tutorial/java/generics/methods.html
通用方法是引入自己的类型参数的方法。这类似于声明泛型类型,但类型参数的范围仅限于声明它的方法。允许使用静态和非静态泛型方法,以及泛型类构造函数。
如果你没有声明<I, O>
,java会查找名为I
和O
的类型(它们不会存在,因为它们应该是通用的)。
我认为@khelwood说得很好(参见对原始问题的评论):它说:“在下面的定义中,I和O代表某些类型,这些类型取决于调用该方法时的情况。”