Just a quick question, when we call the initList(list) on the list parameter, that means that we change the list permanently right ? as when I debug the program, printListValues(list); and processCastObjects(list); get null list as if the initList did not affect the list variable public static void main(String[] args) { List<Number> list = null; initList(list); printListValues(list); processCastObjects(list); private static void initList(List<Number> list) { list = new LinkedList<>(); list.add(new Double(1000f)); list.add(new Double("123e-445632")); list.add(new Float(-90 / -3)); list.remove(new Double("123e-445632")); }