由于这种情况下的自动装箱和拆箱,Hamcrest对于原始数据类型非常有效:
assertThat(1, is(1));
但是,我想将hamcrest的hasItemInArray
匹配器与原始类型数组一起使用,如下所示:
int[] values = someMethodCall();
assertThat(values, hasItemInArray(1));
由于没有针对原始数据类型的数组进行自动装箱/拆箱,因此上述代码无法编译。除了手动将from转换为以外,还有什么其他方法可以实现上述int[]
要求Integer[]
?
AFAIK没有实现这一目标的自动方法。如果您可以使用第三方库,则可能需要检出Apache Commons Lang库,该库为ArrayUtils类提供了一种转换方法:
int[] values = someMethodCall();
Integer[] objValues = ArrayUtils.toObject(values);
assertThat(objValues , hasItemInArray(1));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句