我书面方式JUnit测试,我有这样一行多次使用的Java INT = 1转变为长= 2
Assert.assertEquals("Size of list is incorrect", 1, list.size());
由于一些地方,这条线工作正常,但一些在Java转换失败。
方法签名
无效org.junit.Assert.assertEquals(字符串消息,期待已久,长 实际)
在某些时候,它失败,因为list.size()
是一个int=1
但一旦过去到assertEquals(String message, long expected, long actual)
已成为long=2
并断言失败。
像Integer.valueOf()
或Long.valueOf
这样的显式转换可以解决这个问题,但为什么JVM正在更改第60行的值(而在第30行,它的工作原理如此)?
没有办法'(int)1'正在变成'(long)2L'如果它看起来是'2'而不是'long',那么'2'就是'int'。 – 2014-09-01 12:52:31
“第60行的值(在第30行时,它作为有人参与)”你在谈论哪条线。你在这两条线之间做了什么,这可能是问题的原因。我建议你使用调试器来更好地理解你的程序在做什么。 – 2014-09-01 12:54:28