簡體   English   中英

函數調用后的花括號是什么?

[英]What are curly braces after function call for?

在下面的代碼中, Type type含義是什么,大括號用於什么?

Type type = new TypeToken<List<String>>(){}.getType();
List<String> list = converter.fromJson(jsonStringArray, type ); 

Type是一個類。

new TypeToken<List<String>>() {
}.getType();

創建一個匿名內部類並在創建的對象上調用getType()

這不是在函數調用之后,而是在構造函數調用之后。 這條線

Type type = new TypeToken<List<String>>(){}.getType();

正在創建一個TypeToken的匿名子類的TypeToken ,然后調用它的getType()方法。 你可以用兩行來做同樣的事情:

TypeToken<List<String>> typeToken = new TypeToken<List<String>>(){};
Type type = typeToken.getType();

Java Tutorial Anonymous Subclasses有更多這方面的例子。 這是一種有點特殊的用法,因為沒有覆蓋任何方法,也沒有使用實例初始化塊。 (有關實例初始化塊的更多信息,請參閱初始化字段 。)

大括號是匿名類構造函數,在構造函數調用后使用。 在里面你可以覆蓋或創建一個方法。

例:

    private static class Foo {

    public int baz() {
        return 0;
    }
}

public static void main(final String[] args) {
    final Foo foo = new Foo() {
        @Override
        public int baz() {
            return 1;
        }
    };

    System.out.println(foo.baz());
}

輸出:

1

暫無
暫無

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

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