我正在玩 Xtend,但遇到了障碍。
我的班级使用 Spring Data 存储库。这是界面:
public interface UserRepository extends GraphRepository<UserNode>, RelationshipOperationsRepository<UserNode> {
public UserNode findByEntityId(Long entityId);
}
的超级接口GraphRepository<T>
(它是Spring Data 的一部分,不是我的项目)声明以下内容:
@Transactional
<U extends T> U save(U entity);
@Transactional
<U extends T> Iterable<U> save(Iterable<U> entities);
但是,以下代码对我来说失败了:
// UpdateUserProcessorExample.xtend
class UpdateUserProcessorExample {
@Autowired
UserRepository repository
def updateUser()
{
var user = repository.findByEntityId(1L)
// The following line generates an error:
repository.save(user)
}
}
这会产生:
边界不匹配:类型参数不是方法 save(Iterable) 的有界类型参数的有效替代品
Xtend 似乎选择了错误的重载方法。
我试过添加类型提示,阿拉:
var UserNode user = repository.findByEntityId(1L)
但这仍然会产生相同的错误。我在这里做错了什么?