当前位置: 首页 > 知识库问答 >
问题:

我怎样才能更好地重写下面的Java代码呢?

澹台胜
2023-03-14

我有一小段Java密码。我想用一种更有建设性的方式和更优雅的方式重写下面的代码。我怎样才能实现它?

boolean ifJobTypeIsProfileAndAccountTypeIsNotInternal(PrimecastAccount primecastAccount,Job job) { 
if( job.getProfile() != null && job.getContactList() == null && job.getParameterisedContactList() == null) {
 return true;
} else if (job.getProfile() == null && job.getContactList() != null && job.getParameterisedContactList() == null) {
 return false;
} else if (job.getProfile() == null && job.getContactList() == null && job.getParameterisedContactList() != null) {
 return false;
} else if (job.getProfile() == null && job.getContactList() == null && job.getParameterisedContactList() == null) {
  log.error("Either a contact list, parameterised contact list or profile not found for the flight : {}", job );
  throw new RuntimeException("Either a contact list, parameterised contact list or profile not found for the flight");
} else {
  log.error("Found both contact list/parameterised list and profile for the flight : {}", job );
  throw new RuntimeException("Found both contact list/parameterised list and profile for the flight");
}

return true;

}

非常感谢您的帮助

共有1个答案

缑桐
2023-03-14

如果您使用的是Java 8或更高版本,则可以使用流、对象#nonnull对象#isnull

public boolean isProfileTypeJobWithNotInternalAccountType(Job job){
    var profile  = job.getProfile();
    var contList = job.getContactList();
    var paCoList = job.getParameterisedContactList();
    
    var allNull = Stream.of(profile,contList,paCoList).allMatch(Objects::isNull);
    var twoNotNull = Stream.of(profile,contList,paCoList).filter(Objects::nonNull).count() > 1;
    
    if(allNull){
        log.error("Either a contact list, parameterised contact list or profile not found for the flight : {}", job );
        throw new RuntimeException("Either a contact list, parameterised contact list or profile not found for the flight");
    }
    if(twoNotNull){            
        log.error("Found both contact list/parameterised list and profile for the flight : {}", job );
        throw new RuntimeException("Found both contact list/parameterised list and profile for the flight");
    }
    return Objects.nonNull(profile);
}
 类似资料:
  • 我想把这段代码传递给我的其他类,这样我就不必继续粘贴它了。 以下是错误: 这就是我试图调用代码的方式:

  • 我的笔记本是2010年买的,CPU2410M,RAM 8G。但是每次我启动PyCharm,都需要大约5分钟或更长时间。 如果我使用同一个笔记本,我如何改进PyCharm的启动?PyCharm有什么更好的启动策略吗?

  • 所以我试图将重力添加到4个UIButton,但它们没有下降,我将此代码添加到视图中并加载,我不知道为什么这不起作用。这是代码: 我的按钮有红色按钮、绿色按钮、蓝色按钮和相机按钮,我也应用了秋天的方向,但当我运行应用程序时,它们只是静态的。那么,有没有可能给这些按钮增加重力呢?

  • 输入: 第一行:两个空间分隔的整数N和Q,分别表示数组A中的元素数和查询数 第二行:N个表示数组元素的分隔整数

  • 我有一个用户模型和一个学生模型,我已经为它们建立了关系,但是当我尝试 $学生- 我得到这个错误 “正在尝试获取非对象的属性全名” 以下是我的用户模型代码: 这是我的学生模型代码 即使我试图利用这种关系来获取数据,比如 “学生id”= 我得到这个错误 “对未定义方法Illumb\Database\Eloquent\Relations\BelongsTo::id()的BadMethodCallExce