如何理解“{}”登录下面的代码?

时间:2016-04-21 11:19:45

标签: java reflection

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

请告诉我上面的代码“{}”是什么意思?

4 个答案:

答案 0 :(得分:1)

您可以创建一个新的实现(如果TypeToken是一个接口)或扩展(如果TypeToken是一个类)内联。在你的情况下,类体是空的,因此{}。这个概念被称为 Anonymous Inner Class

答案 1 :(得分:1)

TypeToken是一个类,它只是创建TypeToken类的匿名子类,并从同一行中的对象调用getType()方法。你可以像这样简单地拆分它,

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

如果您仍然不熟悉声明匿名课程,请查看here

答案 2 :(得分:0)

它表示创建的TypeToken的空类主体。

答案 3 :(得分:0)

TypeToken是一个抽象类(仅声明为抽象类,但不要求任何方法),并且您使用匿名类继承它。 来自TypeToken javadocs:

  

使用(通常是匿名的)子类捕获泛型类型,并针对知道类型参数是什么的上下文类来解析它