如何重写没有嵌套的迭代?

问题描述

这是我的迭代,但是其中之一是嵌套的:

        objects.forEach(obj -> {
            if (obj.getType() == Type.APPLICATION) {
                clientApplicationPriorities.add(getClientApplicationPriority(obj.getApplicationShortInfo().getId(),clientId,priority,null));
            } else if (obj.getType() == Type.FOLDER) {
                final FoldeRSShortInfo folderInfo = obj.getFolderShortInfo();
                final String folderName = folderInfo.getName();
                final List<ApplicationShortInfo> appInfos = folderInfo.getApplications();
                appInfos.forEach(appInfo -> clientApplicationPriorities.add(getClientApplicationPriority(appInfo.getId(),folderName)));
            } else {
                throw new FolderRequestException();
            }
        });

如何使用Stream API重写它?

解决方法

  1. 请分享一些与代码实现有关的更多逻辑。

  2. 您应该使用切换大小写而不是if-elseif-else循环来获得更简洁的代码。

    original_path <- Sys.getenv("PATH")
    Sys.setenv(PATH = paste("C:/Users/Mezeix/AppData/Local/r-miniconda/",original_path,sep = ":"))
    library(reticulate)
    reticulate::py_config()
    
    
    
    options(reticulate.conda_binary = "C:/Users/Mezeix/AppData/Local/r-miniconda/")
    library(reticulate)
    reticulate::py_config()
    
    original_path <- Sys.getenv("PATH")
    Sys.setenv(PATH = paste("C:/Users/Mezeix/AppData/Local/r-miniconda/",sep = ":"))
    library(reticulate)
    reticulate::py_config()