首先-我必须将你定向到http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html-她的工作非常出色。
基本思想是你使用
<T extends SomeClass>
当实际参数可以是
SomeClass或它的任何子类型时。
在你的示例中
Map<String, Class<? extends Serializable>> expected = null;Map<String, Class<java.util.Date>> result = null;assertThat(result, is(expected));
你说的是
expected可以包含代表任何实现的类的
Class对象
Serializable。你的结果图说它只能容纳
Date类对象。
当你在结果传递,你设置T准确
Map的
String给Date类对象,这不匹配Map的String,以任何的
Serializable。
要检查的一件事-确定要Class
至于泛化assertThat,其想法是该方法可以确保Matcher传入适合结果类型的a 。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)