This is a simple question but if I do
List<Object> list = getObjectsFromDatabase();
This would not be the correct way to handle this?
But this would?
List<Object> firstList = getObjectsFromDatabase();
List<Object> list = new ArrayList<Object>(firstList);
Or if I had a class
public class ReportDisplayModel<T> {
public ReportDisplayModel(List<T> data) {
this.data = data;
}
public List<T> data;
}
And I wanted to set the data in this model I would use the constructor?
ReportDisplayModel<Object> model = new ReportDisplayModel<Object>(getData());
Instead of
ReportDisplayModel<Object> model = new ReportDisplayModel<Object>();
model.data = getData();
Just need a clarification. Thanks.
Regarding
vs
either approach is fine. Depends on if you want
listto refer to the list returned bygetObjectsFromDatabase()or if you want it to refer to a copy of it.If simply want to, say, print the database objects, the first approach is fine.
If you want to, say, filter out half of the database objects (i.e., remove objects from the list), and you can’t say for sure that
getObjectsFromDatabase()returns a mutable list, then you’ll have to go with the second approach.Regarding
vs
I’d prefer the first method. Simply because I wouldn’t want to worry about null pointer exceptions etc if I accidentally do something like