【发布时间】:2009-10-30 22:48:52
【问题描述】:
有没有一种简洁的方法来模拟具有泛型参数的类?假设我必须模拟一个类Foo<T>,我需要将它传递给一个需要Foo<Bar> 的方法。我可以很容易地做到以下几点:
Foo mockFoo = mock(Foo.class);
when(mockFoo.getValue).thenReturn(new Bar());
假设getValue() 返回泛型类型T。但是当我后来将它传递给一个期望Foo<Bar>的方法时,它就会有小猫。投射是唯一的方法吗?
【问题讨论】:
-
为什么要使用 foo 和 bar 而不是更有意义的名称。只是给很多人造成了一大堆混乱。
-
@Kaigo 在编程示例中使用 foo、bar 和 baz 是非常典型的,尤其是在匿名现实世界示例以隐藏机密细节时。现在,我更关心的是 OP 使用了“那将会有小猫”这个短语......实际上之前从未听过任何人这么说;)
-
每个人都知道“养小猫”对代码来说是一件坏事,即使它对猫来说非常好。
:--)