【发布时间】:2014-12-02 23:16:14
【问题描述】:
根据this answer,int 常量被隐式转换为short 类型。
但在我的单元测试中,我想测试一个返回 Short 的 getValue() 函数。
assertEquals(obj.getValue(), 42);
显然上面的行不通,所以我尝试使用 Short.valueOf
assertEquals(obj.getValue(), Short.valueOf(42));
然而,这仍然抱怨 - 尽管前面提到了隐式转换 - 所以我必须转换文字。
assertEquals(obj.getValue(), Short.valueOf((short)42));
Short.valueOf((short)5) 看起来有点乱!有没有更清洁的方法? (new Short("42") 同样可怕!)
【问题讨论】:
-
它需要一个强制转换,因为literal integer值被视为
int,所以你需要告诉编译器它实际上是一个short。