Java Integer可以是基本的,但assertTrue变得不明确-如何满足这两个要求?

Java Integer可以是基本的,但assertTrue变得不明确-如何满足这两个要求?,java,intellij-idea,casting,integer,int,Java,Intellij Idea,Casting,Integer,Int,我有一段简单的代码,测试Spring存储库: //存储库是在代码中声明的,这并不重要 @试验 public void objectTest(){ 整数testId=10; TestedObject testObj=repository.getTestedObject(testId); assertNotNull(testObj); assertEquals(testId,testObj.getId());//testObj.getId()是整数,而不是int } 此代码向我发出了有关testI

我有一段简单的代码,测试Spring存储库:

//存储库是在代码中声明的,这并不重要
@试验
public void objectTest(){
整数testId=10;
TestedObject testObj=repository.getTestedObject(testId);
assertNotNull(testObj);
assertEquals(testId,testObj.getId());//testObj.getId()是整数,而不是int
}
此代码向我发出了有关
testId
的警告,它可以是原始的

当我将
testId
更改为primitive时,会出现歧义错误,因为
assertEquals(testId,testObj.getId())
可以同时匹配
assertEquals(Object,Object)
assertEquals(int,int)
,这是由于Java的自动装箱功能。

我讨厌不固定的警告,我很想摆脱它们。关于
testId
非原始的警告只出现在IntelliJ IDEA中,Eclipse甚至不在乎

我应该:

  • 投一个变量
    assertEquals((整数)testId,testObj.getId())
  • 在IDEA中配置警告严重性

另外,我想在
testObj
getId()
方法中留下一个整数,以防任何与对象相关的操作无法在原语上完成。

答案是:这是一个错误。感谢您在JetBrains上创建错误报告。(链接,从评论中复制)


毕竟,我已经使用并选择了
intValue()
方法。

您可以使用
整数的原语值,比如
assertEquals(testId,testObj.getId().intValue())相反,您可以使用assertTrue(int value==整数值)@BadDeveloper隐藏预期值和实际值。@AndyTurner:实际值始终是硬编码的。这没有任何意义difference@user1001如果出现故障,它会在异常消息中显示。