我正在编写 JUnit 测试,并且我有这样的行多次使用
Assert.assertEquals("Size of list is incorrect", 1, list.size());
在某些地方,此行工作正常,但 Java 转换失败。
方法签名是
void org.junit.Assert.assertEquals(String message, long expected, long actual)
在某些时候它会失败,因为 list.size()
是 int=1
但一旦过去assertEquals(String message, long expected, long actual)
就变成了long=2
并且断言失败。
进行显式转换,如 Integer.valueOf()
或Long.valueOf
解决了这个问题,但为什么 JVM 会改变第 60 行的值(而在第 30 行,它会按预期工作)?
最佳答案
在与 teamate 进行一些调试后,Eclipse 似乎在某些时候无法重新编译类,并且代码正在使用先前复制/粘贴中的其他变量。
关于Java int=1 转化为 long=2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25606251/