簡體   English   中英

Scala / Java語法,返回接口實現

[英]Scala/Java syntax, return interface implementation

此代碼行在底部的代碼中意味着什么?

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())
        ));
    }

}

更新

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>

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");

有時類型推斷系統不能完全滿足其目的,並且無法自動推斷出泛型方法的調用的返回類型。 為了指定這種類型,此結構存在-您可以幫助推斷表達式的正確類型。

有關更多信息,請查看JLS 正式定義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM