从http://www.artima.com/weblogs/viewpost.jsp?thread=208860:
事实证明,尽管JVM不会跟踪泛型类实例的实际类型参数,但它会跟踪泛型类的子类的实际类型参数。换句话说,虽然new
ArrayList<String>()实际上ArrayList()在运行时只是一个new
,但是如果一个class扩展了ArrayList<String>,那么JVM就会知道这String是的type参数的实际List类型参数。
在您的情况下,您正在制作参数化类型的匿名子类,因此将保留类型信息。请参阅本文以获取详细说明。



