Перепробовал уже пять разных решений...Ошибка одна и та же =/
package com.javarush.task.task17.task1711;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/*
CRUD 2
*/
public class Solution {
public static volatile List<Person> allPeople = new ArrayList<Person>();
static {
allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
}
public static void main(String[] args) throws ParseException {
//start here - начни тут
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
switch (args[0]) {
case "-c":
synchronized (allPeople) {
for (int i = 1; i < args.length; i += 3) {
String name = args[i];
String sex = args[i+1];
Date d = format.parse(args[i+2]);
Person person;
if(sex.equals("м")){
person = Person.createMale(name, d);
}else{
person = Person.createFemale(name, d);
}
System.out.println(allPeople.indexOf(person));
}
} break;
case "-u":
synchronized (allPeople) {
for (int i = 1; i < args.length; i = i + 4 ){
if(args[i+2].equals("м")){
update(Integer.parseInt(args[i]), args[i+1], Sex.MALE, format.parse(args[i+3]));
}else{
update(Integer.parseInt(args[i]), args[i+1],Sex.FEMALE, format.parse(args[i+3]));
}
}
}
break;
case "-d":
synchronized (allPeople){
for (int i = 1; i < args.length ; i++) {
del(args[i]);
}
}
break;
case "-i":
synchronized (allPeople){
for (int i = 1; i < args.length ; i++) {
show(args[i]); }
}
break;
default:
synchronized (allPeople){
System.out.println("Need to param");
}
}
}
private static void update(int id, String name, Sex sex, Date date) {
allPeople.get(id).setName(name);
allPeople.get(id).setSex(sex);
allPeople.get(id).setBirthDate(date);
}
private static void del(String id) {
allPeople.get(Integer.parseInt(id)).setName(null);
allPeople.get(Integer.parseInt(id)).setSex(null);
allPeople.get(Integer.parseInt(id)).setBirthDate(null);
}
private static void show(String id) {
SimpleDateFormat format2 = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
String sex = "";
if (allPeople.get(Integer.parseInt(id)).getSex().equals(Sex.MALE)) {
sex = "м";
} else if (allPeople.get(Integer.parseInt(id)).getSex().equals(Sex.FEMALE)) {
sex = "ж";
}
System.out.println(allPeople.get(Integer.parseInt(id)).getName() + " " + sex + " " +
format2.format(allPeople.get(Integer.parseInt(id)).getBirthDate()));
}
}