Nar*_*Oo 5 java spring spring-mvc lombok spring-data
在描述服务的接口中,我有类似这样的方法:
TaskCard saveTaskCard(@NonNull TaskCard card, User user);
Run Code Online (Sandbox Code Playgroud)
我将@NonNull(lombok) 注释放在一个参数之前,但如果实现中没有相同的注释,它就不会单独工作。这意味着在实现此接口的类的方法中,我将需要再次放置此注解,从而重复代码。
@Override
@Transactional
public TaskCard saveTaskCard(@NonNull TaskCard taskCard, User user) {
taskCard.setUser(user);
return repository.save(taskCard);
}
Run Code Online (Sandbox Code Playgroud)
问题是,这是应该的吗?如果只把这个注解放在接口中,它们是行不通的,如果只放在实现接口的类中,那么API用户可能不明白,null不能传递给这些方法。我该怎么办?
恕我直言,由于您所说的原因,您肯定应该复制它:
当您不考虑可空性实际上是类型的一部分时,这只是多余的 - 不是在 Java 中,但它是现实(例如,Kotlin),它是。
不幸的是,Lombok 不能做得更好,它可以访问接口(不是父类)。
有一些工具可以帮助您一致地执行此操作(但我还没有尝试过),或者您可以编写一个简单的基于反射的测试。然后,您仍然会被迫编写多余的内容,但如果您忘记了,系统会提醒您。
| 归档时间: |
|
| 查看次数: |
732 次 |
| 最近记录: |