如何在迭代和检查 Object 的另一个 ArrayList 时将实体值更新为 ArrayList 中的 object

How to update entity values to the object in a ArrayList while iterating and checking another ArrayList of Object

我遇到这样一种情况,我正在遍历 objects 的 ArrayList,并根据条件将该 ArrayList 的值添加到另一个 ArrayList,如果它们是否为空。现在我想更新一个ArrayList 的特定实体的值,我在其中添加来自另一个 ArrayList 的值。让我 post 代码也解释一下

这是我存储值的目标实体

public class DestDO{
private String id;
private String name;
private String phase;
private String attr;
private String isComplete;

这是我从中获取值的来源实体

public class SourceDO{
private String id;
private String name;
private String phase;
private String attr;

这是我设置值的 class

public class DataInjectService{

 public List<SourceDO> addAllValues(){

  List<SourceDO> addedListValues = Arrays.asList(

  new SourceDO("1","Jeet","KI","D"),
  new SourceDO("1","John","KA","E"),
  new SourceDO("1","HARRY","KU","R")
);
return addedListValues 

这是driverclass

public class TestArrayList{
 public static void main(String a[]){
 DataInjectService dataInjectService = new DataInjectService ();
 List<SourceDO> listOfSourceObj = 
 System.out.println(mapSourceToDest(listofSourceObj);
}

在此操作中,如果任何 sourceDO 值为空,则我必须将 isComplete 实体设置为 false,否则我的 sourceDO 包含所有值,则我必须将 isComplete 设置为 true entity.To 更准确地说sourceDO.getName() 为空,那么即使 sourceDO 的其他值不为空,我也必须将 false 设置为 isComplete 实体。这可能吗?

public static List<DestDO> mapSourceToDest(List<SourceDO> listOfSourceObj){
 List<DestDO> desiredResult = new ArrayList<>();
 for(SourceDO sourceDo : listOfSourceDO){
  desiredResult.add(DestDO.builder()
   .id(Optional.ofNullable(sourceDO.getId()).orElse(""))
   .name(Optional.ofNullable(sourceDO.getName()).orElse(""))
   .phase(Optional.ofNullable(sourceDO.getPhase()).orElse(""))
   .attr(Optional.ofNullable(sourceDO.getAttr()).orElse(""))
   .isComplete(// here i have to change the status 

我正在尝试做一个适合此操作的 Java 8 方法,如果可能的话请帮助我

你要检查你的属性,有很多方法,我建议使用:

private static boolean verifyAnyNull(SourceDO sourceDo) {
    return Arrays.asList(
            sourceDo.getId(),
            sourceDo.getName(),
            sourceDo.getPhase(),
            sourceDo.getAttr()
    ).contains(null);
}

然后调用你的方法:

.isComplete(verifyAnyNull(sourceDo))

我假设 complete 是布尔值而不是字符串