lambda problème de portée de variable
Bonjour je veux remplir une Map à partir d'une liste déjà rempli ainsi qu'une autre liste
mais en lisant quelque tuto je me rend compte que mes variables
Code:
Map<UUID,String> fuelcardByVehicleId
et
Code:
List<VehicleDto> fuelCardVehicleDtoList
ne sont pas visible depuis mon expression lamdda à moins que je les déclare en final ce qui n'est pas possible car je dois les remplir.
comment puis-je remplir ces deux variable avec mon expression lambda.
Voici ma fonction
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public List<VehicleDto> getVehicles(boolean isCard) {
List<Vehicle> vehicles = getVehicle();
List<VehicleDto> vehicleDtoList = getVehicleDto();
if(isCard) {
//liste bien remplie
List<FuelCard> fuelCards = getFuelCard();
Map<UUID,String> fuelcardByVehicleId = new HashMap<>();
fuelCards.stream().forEach(x ->{
if(! fuelcardByVehicleId.containsKey(x.getVehicle().getId())){
fuelcardByVehicleId.put(x.getVehicle().getId(),x.getPinCode());
}
});
List<VehicleDto> fuelCardVehicleDtoList = new ArrayList<>();
vehicleDtoList.stream().forEach(v ->{
VehicleDto vdto = v;
if(fuelcardByVehicleId.containsKey(v.getId())){
vdto.setFuelCardPinCode(fuelcardByVehicleId.get(v.getId()));
}
fuelCardVehicleDtoList.add(vdto);
});
return fuelCardVehicleDtoList;
}
return vehicleDtoList;
} |
merci de m'aiguiller si vous avez une idée