9

在下面的代码中,大括号是什么Type type意思,大括号的用途是什么?

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

3 回答 3

7

Type是一类。

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

正在创建一个匿名内部类并调用getType()创建的对象。

于 2013-09-23T20:40:33.730 回答
7

那不是在函数调用之后,而是在构造函数调用之后。线

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

正在创建 的匿名子类的实例TypeToken,然后调用其getType()方法。您可以在两行中执行相同的操作:

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

Java 教程匿名子类有更多这样的例子。这是一个有点特殊的用法,因为没有方法被覆盖,也没有使用实例初始化块。(有关实例初始化块的更多信息,请参阅初始化字段。)

于 2013-09-23T20:39:45.667 回答
1

花括号是匿名类构造函数,在构造函数调用后使用。在里面你可以覆盖或创建一个方法。

例子:

    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
于 2013-09-23T20:40:40.293 回答