有没有更好的方法来写这个if语句



我最近刚开始是一名开发人员,但我的代码编写方式仍有点困难。

有没有更好的方法来写这两个if语句?你会怎么写,为什么?

Java代码:

@Override
@Transactional
public void deleteItem(final ConfigurationType type, final long itemId, final boolean force) {
this.applicationNameUtils.throwOnInvalidApplication(type.getApplication());
final ConfigurationItemModel item =
this.configurationItemRepository.findByApplicationAndTopicAndId(type.getApplication(), type.getTopic(), itemId)
.orElseThrow(() -> new ResourceNotFoundException(itemId, "Configuration Item"));
if (Boolean.TRUE.equals(item.getContentModificationOnly()) && Boolean.FALSE.equals(force)) {
throw new ContentModificationOnlyException("Configuration Item cannot be deleted");
}
if ((Boolean.TRUE.equals(item.getContentModificationOnly()) || Boolean.FALSE.equals(item.getContentModificationOnly())) && Boolean.TRUE.equals(force)) {
this.assignmentService.deleteAssignmentsByItem(item);
this.configurationInstanceRepository.deleteByItem(item);
this.configurationItemRepository.deleteById(itemId);
}
}

我不确定我是否能以某种方式将这两者结合在一个if else中。

您似乎不关心item.getContentModificationOnly()在第二个if语句中是true还是false,因为您的代码是(Boolean.TRUE.equals(item.getContentModificationOnly()) || Boolean.FALSE.equals(item.getContentModificationOnly())。所以,如果你的逻辑是正确的,我建议你这样编码:


if (fore) {
this.assignmentService.deleteAssignmentsByItem(item);
this.configurationInstanceRepository.deleteByItem(item);
this.configurationItemRepository.deleteById(itemId);
} else if (Boolean.TRUE.equals(item.getContentModificationOnly()) {
throw new ContentModificationOnlyException("Configuration Item cannot be deleted");
}

第一个条件

if (item.getContentModificationOnly() && !force) {

第二个如果条件

if ((item.getContentModificationOnly() || !item.getContentModificationOnly()) && force) {

以下代码将始终返回真正的

(item.getContentModificationOnly() || !item.getContentModificationOnly()) 

因此,如果stmnt仅为,则将second修改为

if (force){

取决于返回类型item.getContentModificationOnly()。如果是Boolean,则第二条语句可以简化为

if(item.getContentModificationOnly() != null && force)

如果item.getContentModificationOnly()的返回类型是boolean,则该语句可以简化为

if(force) 

以及上面@LiLittleCat的答案(如果正确(。

相关内容

  • 没有找到相关文章

最新更新