2014-02-14 2 views
1

Что означает эта строка кода в коде внизу?Синтаксис Scala/Java, реализация интерфейса возврата

return Promise.<SimpleResult>pure //why is the dot 

Я новичок в Scala и Java 6, что это за тема/терминология?

Если структура не находит метод действия для запроса, операция onHandlerNotFound будет называться:

import play.*; 
import play.mvc.*; 
import play.mvc.Http.*; 
import play.libs.F.*; 

import static play.mvc.Results.*; 

public class Global extends GlobalSettings { 

    public Promise<SimpleResult> onHandlerNotFound(RequestHeader request) { 
     return Promise.<SimpleResult>pure(notFound(
      views.html.notFoundPage.render(request.uri()) 
     )); 
    } 

}

Update:

play.libs.F.Java файл

public static class Promise<A> { 

    public static <A> Promise<A> pure(final A a) { 
     return FPromiseHelper.pure(a); 
    } 
} 

Что такое <A> и Promise<A>?

ответ

5

Promise.pure() является общим методом, параметризованным с некоторым типом T.

Promise.<SimpleResult>pure() вызывает этот метод с SimpleResult в качестве универсального типа. Большая часть времени, делая это не является обязательным, поскольку компилятор выводит общий тип из аргументов методы или от типа переменной результат присваивается, как в

List<String> s = Collections.emptyList(); 

, который является аббревиатурой для

List<String> s = Collections.<String>emptyList(); 

или

Set<String> Collections.singleton("hello"); 

который является аббревиатурой для

Set<String> Collections.<String>singleton("hello"); 
+0

Спасибо за подсказку и подробное объяснение. Я добавил обновление для дальнейшего объяснения, не могли бы вы посмотреть? – Pingpong

0
+0

Спасибо за подсказку и ссылки! – Pingpong

Смежные вопросы