it's saying the -u argument section may be changing list size and -i argument section doesn't print to screen.
package com.codegym.task.task17.task1710;
import java.util.*;
import java.text.*;
/*
CRUD
*/
public class Solution {
public static List<Person> allPeople = new ArrayList<>();
static {
allPeople.add(Person.createMale("Donald Trump", new Date())); // id=0
allPeople.add(Person.createMale("Sleepy Joe", new Date())); // id=1
}
public static void main(String[] args) throws ParseException{
// Start here checks args[0] for command line
SimpleDateFormat sdfIn = new SimpleDateFormat("MM dd yyyy");
SimpleDateFormat sdfOut = new SimpleDateFormat("MMM dd yyyy");
//Date date = new Date();
switch(args[0]){
case "-c":
if (args[2].equals("m")){
allPeople.add(Person.createMale(args[1], sdfIn.parse(args[3])));
}else{
allPeople.add(Person.createFemale(args[1], sdfIn.parse(args[3])));
}
System.out.println(allPeople.size()-1);
break;
case "-u": //make sure list size stays the same
if (args[3].equals("m")){
Person p = allPeople.get(Integer.parseInt(args[1]));
p.setName(args[2]);
p.setSex(Sex.MALE);
p.setBirthDate(sdfIn.parse(args[3]));
allPeople.set(Integer.parseInt(args[1]), p);
}else{
Person p = allPeople.get(Integer.parseInt(args[1]));
p.setName(args[2]);
p.setSex(Sex.FEMALE);
p.setBirthDate(sdfIn.parse(args[3]));
allPeople.set(Integer.parseInt(args[1]), p);
}
break;
case "-d":
allPeople.get(Integer.parseInt(args[1])).setName(null);
allPeople.get(Integer.parseInt(args[1])).setSex(null);
allPeople.get(Integer.parseInt(args[1])).setBirthDate(null);
break;
case "-i": // no data displayed
Person p = allPeople.get(Integer.parseInt(args[1]));
String gender = "";
if (p.getSex().equals(Sex.MALE)){gender="m";}else{gender="f";}
System.out.print(p.getName()+" ");
System.out.print(gender+" ");
System.out.print(sdfOut.format(p.getBirthDate()+" "));
break;
default: break;
}
}
}