Вы создаете массив null
s.
private Field[] fields = new Field[ToDo.class.getDeclaredFields().length];
Вы должны иметь возможность использовать массив, возвращенный getDeclaredFields
напрямую.
private Field[] fields = ToDo.class.getDeclaredFields();
Почти наверняка вы можете делать то, что вы хотите, лучше без размышлений.