Java - 将 if() 语句中的新对象添加到在 if(){} 外部声明的列表

Java - adding new Object within an if() statement to a list declared outside if(){}

我有这段代码,其中 ArrayList 是在任何条件之外实例化的:

List<PatientDto> list = new ArrayList<PatientDto>();

for(Object o : ObjectList){
    if(true){
        PatientDto patient = new PatientDto(....);
        list.add(patient);
    }
}

PatientDto dto = list.get(0);

鉴于新的 PatientDto() 是在 if 语句中实例化的,我在访问列表时是否仍然能够检索它?

患者在 if 子句的范围内,但如果您可以在 if 子句之外访问相同的引用,则可以在块外访问它。

该列表存储了您的 patient 对象的引用,您可以在任何可以访问该列表的地方访问该对象。因此,您可以通过从列表中获取包含的对象来访问它。

是的,既然你是把它插入到列表中,你可以通过索引来获取它。或者您可以在稍后插入所有对象后进行迭代。

例如:

 PatientDto patient = list.get(index);

更新:

PatientDto dto = list.get(0);

是的,这给出了列表中第 0 个索引 PatientDto,无论您之前放在那个地方是什么。由于您在循环中添加了新实例,因此它们会给您相同的结果。

进入范围

for(Object o : ObjectList){
    if(true){
        PatientDto patient = new PatientDto(....);
        list.add(patient);
    }
}

System.out.println(patient); // err, I dont know what is patient
System.out.println(list.get(0)) // yay here is the patient, use it.