¿Cuál es la mejor manera de devolver una colección en Java?java: devolver una colección
¿Debo permitir que la persona que llama proporcione una colección para agregar? O simplemente devuelva List<>
o Set<>
de los artículos? ¿O ambos?
public class Item { ... }
public class SomeOtherClass
{
private List<Item> myItems;
public List<Item> getItems()
{
return Collections.unmodifiableList(this.myItems);
}
public void collectItems(Collection<? super Item> target)
{
target.addAll(myItems);
}
}
nota: el ejemplo anterior se supone la existencia previa de una lista que se puede devolver al instante. También estoy interesado en la respuesta adecuada cuando dicha lista no existe previamente y debe generarse cuando la persona que llama llama a getItems() o collectItems(). (He renombrado collectItems basado en el punto planteado por Mykola.)
+1 por presentar Collections.unmodifiableList. Justo lo que estaba buscando. – Adam