Java 测试Lombok生成的数据结构

Java 测试Lombok生成的数据结构,java,tdd,lombok,junit5,Java,Tdd,Lombok,Junit5,我用lombok来描述一个元组: @Data public class Pair<K, V> { private final K key; private V value; } 然而,尽管自动生成的lombok get方法应该返回一个int,但我可以看到我的IDE抱怨: Error:(12, 9) java: reference to assertEquals is ambiguous both method assertEquals(java.lang.Obj

我用
lombok
来描述一个元组:

@Data
public class Pair<K, V> {
    private final K key;
    private V value;
}
然而,尽管自动生成的lombok get方法应该返回一个
int
,但我可以看到我的IDE抱怨:

Error:(12, 9) java: reference to assertEquals is ambiguous
  both method assertEquals(java.lang.Object,java.lang.Object) in org.junit.jupiter.api.Assertions and method assertEquals(int,int) in org.junit.jupiter.api.Assertions match
尽管我知道,
assertEquals
需要两个
int
,这是我提供的


如何在
Java
中执行此操作?

调用该行为的原因

自动装箱是Java编译器进行的自动转换 在基元类型及其相应的对象包装器之间 上课。例如,将int转换为整数,将double转换为 双倍,等等。如果转换方向相反,则这是 叫做拆箱

myTestPair
对象返回
Integer
,它是
int
的包装,因此编译器不知道使用什么重载方法:
assertEquals(object,object)
assertEquals(int,int)
。您需要让编译器知道,请使用:

assertEquals(5, myTestPair.getValue().intValue());
assertEquals(0, myTestPair.getKey().intValue());


这种行为的原因称为

自动装箱是Java编译器进行的自动转换 在基元类型及其相应的对象包装器之间 上课。例如,将int转换为整数,将double转换为 双倍,等等。如果转换方向相反,则这是 叫做拆箱

myTestPair
对象返回
Integer
,它是
int
的包装,因此编译器不知道使用什么重载方法:
assertEquals(object,object)
assertEquals(int,int)
。您需要让编译器知道,请使用:

assertEquals(5, myTestPair.getValue().intValue());
assertEquals(0, myTestPair.getKey().intValue());


您可以使用import static org.assertj.core.api.Assertions.assertThat;资产(1)isEqualTo(1);您可以使用import static org.assertj.core.api.Assertions.assertThat;资产(1)isEqualTo(1)@幽灵猫,是的,当然。@GhostCat,是的,当然。
assertEquals((Integer)5, myTestPair.getValue());
assertEquals((Integer)0, myTestPair.getKey());
assertEquals(Integer.valueOf(5), myTestPair.getValue());
assertEquals(Integer.valueOf(0), myTestPair.getKey());