Scala/Java语法,返回接口实现

Pin*_*ong 1 java scala

这行代码在底部的代码中意味着什么?

return Promise.<SimpleResult>pure  //why is the dot
Run Code Online (Sandbox Code Playgroud)

我是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())
        ));
    }
Run Code Online (Sandbox Code Playgroud)

}

更新:

play.libs.F.Java 文件

public static class Promise<A> {

    public static <A> Promise<A> pure(final A a) {
        return FPromiseHelper.pure(a);
    }
}
Run Code Online (Sandbox Code Playgroud)

什么是<A>Promise<A>

JB *_*zet 5

Promise.pure() 是一种通用方法,用某种类型T参数化.

Promise.<SimpleResult>pure()使用SimpleResult作为泛型类型调用此方法.大多数情况下,这样做是可选的,因为编译器根据方法的参数或结果分配给的变量的类型推断泛型类型,例如

List<String> s = Collections.emptyList();
Run Code Online (Sandbox Code Playgroud)

这是一个快捷方式

List<String> s = Collections.<String>emptyList();
Run Code Online (Sandbox Code Playgroud)

要么

Set<String> Collections.singleton("hello");
Run Code Online (Sandbox Code Playgroud)

这是一个快捷方式

Set<String> Collections.<String>singleton("hello");
Run Code Online (Sandbox Code Playgroud)