ste*_*wpf 2 java generics javadoc signature guava
我试图理解这个方法签名:
public final <T> FluentIterable<T> transform(Function<? super E,T> function)
Run Code Online (Sandbox Code Playgroud)
我明白变换会返回一个FluentIterable<T>,但我不明白<T>之前的FluentIterable<T>意思是什么?
此外,Function<? super E,T>我明白了什么? super E意思,但我无法想象编译器如何检查这一点 - 在编译时不是E未知,那么编译器如何知道,如果?是超类型E?
<T>表示这是一个带有泛型类型参数的方法T.这<T>类似于类名(如List<T>),仅用于方法.
E在编译时并不为人所知.E也是类定义中定义的泛型类型参数:
public abstract class FluentIterable<E> extends Object implements Iterable<E>
Run Code Online (Sandbox Code Playgroud)
当您创建此类的实例时,编译器会知道其类型E.