簡體   English   中英

如何從可選地圖中獲取值?

[英]How to get a value from an optional map?

我有一個簡短的問題。 如何從可選地圖中獲取值?

在 foreach (fuelTypesFromDriveTrain.forEach ...) 我想從地圖中提取值:

  • 字符串值 = FuelTypesMap.get(fuelTypeFromDriveTrain.getType());

但我不知道如何訪問它們,我認為原因是我的地圖是Optional 有任何想法嗎 ?

  // the map 
  final Optional<Map<String, String>> fuelTypesMap = extractAttributeElementValueMap(fuelTypeAttributes);

  final Set<FuelType> fuelTypesFromDriveTrain = getFuelTypesFromDriveTrain(driveTrain);

 if (refueling.getTypes().isEmpty() && !fuelTypesFromDriveTrain.isEmpty()) {
            Set<String> fuelTypesKeys = new HashSet<>();
            fuelTypesMap.map(Map::keySet)
                    .map(Collection::stream)
                    .orElseGet(Stream::empty)
                    .forEach(fuelTypeKey -> fuelTypesKeys.add(fuelTypeKey));

            fuelTypesFromDriveTrain.forEach(fuelTypeFromDriveTrain -> {
                if(fuelTypesKeys.contains(fuelTypeFromDriveTrain.getType())) {
                       String value = fuelTypesMap.get(fuelTypeFromDriveTrain.getType());
                       // I cannot obtain the value from the map
                     
                       refueling.getTypes().add(value);
                }
            });
        }

檢查下面的代碼

fuelTypesFromDriveTrain.forEach(fuelTypeFromDriveTrain -> {
            fuelTypesMap.map(dataMap->dataMap.get(fuelTypeFromDriveTrain.getType()))
                    .ifPresent(value->refueling.getTypes().add(value));
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM