There is a null personList of type List, but you declare that the null personList List will have ONLY elements of type Person.
The personList maybe null, it is type List but you put "things" in the List. And you declare that when you are going to put things in the List the elements will be of type Person.
List<Person> personList= null;
Then somewhere else in the code:
personList = new ArrayList<Person>();
//the following is wrong:
//you can put only Person objects in the List
But this would be correct:
List list = new ArrayList();