Я пытаюсь понять этот метод подписи:Понимание сигнатура метода
public final <T> FluentIterable<T> transform(Function<? super E,T> function)
Я понимаю, что преобразование возвращает FluentIterable<T>
, но я не понимаю, что <T>
перед FluentIterable<T>
означает?
Кроме того, в Function<? super E,T>
, я понимаю, что такое ? super E
средства, но я не могу себе представить, как компилятор может проверить это - не E неизвестно во время компиляции, так как компилятор должен знать, если ?
является супертипом E
?
Большое спасибо, теперь я понимаю вещь 'E'. О первом '', на самом деле он не используется в методе преобразования, но в классе функций, но также можно получить доступ к' ' в методе преобразования, правильно? –
Да, вы могли бы использовать тип 'T' в методе так же, как вы могли бы использовать' E'. Если класс не будет определять 'E', то для подписи метода потребуется' 'вместо' '. –
micha
Ну, спасибо и, конечно, принято как ответ ;-) –