当前位置: 首页 > 面试题库 >

方法query(String,ResultSetExtractor)中的JdbcTemplate类型不适用于参数(String,BeanPropertyRowMapper)

骆雅昶
2023-03-14
问题内容

我有一个奇怪的编译问题。我无法解决此问题。同样的代码在另一个项目中也能正常工作

org.mockito.Mockito.when(jdbcTemplate.query(org.mockito.Matchers.anyString(), 
    org.mockito.Matchers.any(BeanPropertyRowMapper.class))).thenReturn(SOMELIST);

我收到错误消息

The method query(String, ResultSetExtractor<T>) in the type JdbcTemplate is not applicable for the arguments (String, BeanPropertyRowMapper)

但是,当我这样做时,不会出现任何错误。但是我没想到这一点。

BeanPropertyRowMapper<MyClass> mapper = 
    new BeanPropertyRowMapper<MyClass>(MyClass.class);
org.mockito.Mockito.when(jdbcTemplate.query(org.mockito.Matchers.anyString(), 
    mapper)).thenReturn(SOMELIST);

我不确定这是否是Eclipse问题。感谢您的帮助。


问题答案:

由于BeanPropertyRowMapper<T>是通用接口,因此您应该any()像这样调用:

Mockito.when(jdbcTemplate.query(Matchers.anyString(), 
    Matchers.<BeanPropertyRowMapper<MyClass>>any())).thenReturn(SOMELIST);


 类似资料: