Добрый день. Писал код, писал. И опомнился. Собственно, понятно, как должно добавляться, хотя валидатор утверждает, что я не добавляю.
А как обновить или удалить, вывести данные? Ведь программа запускается с параметрами в командной строке. Запустили программу, в параметрах прописали добавление. Добавилось. Для того, чтобы обновить/удалить/вывести нужно ведь программу заново запустить? В новом экземпляре запущенной программы не будет добавленного человека, что удалять/обновлять/выводить? О чём вообще речь? В чём логика этой задачи? Или логика в том, что в Static уже добавляются два человека?
Тогда, не понимаю, почему у меня:
Убедись, что действительно человек добавляется в список allPeople.
Убедись, что при обновлении данных человека размер списка allPeople не меняется. (а не должен? где условие про это в задании?)
Убедись, что при удалении данных человека размер списка allPeople не меняется. (а не должен? где условие про это в задании?)
Убедись, что при параметре -i выводятся на экран данные человека. (а что выводить? то, что в static?)
Не понимаю(((
package com.javarush.task.task17.task1710;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/*
CRUD
*/
public class Solution {
public static 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 {
String cmdName = args[0].toString();
if (cmdName == "-c") {
SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern("dd/MM/yyyy");
Date BD = format.parse(args[2]);
String peopleName = args[0];
if (args[1] == "м") {
allPeople.add(allPeople.size(), Person.createMale(peopleName, BD));
} else
{
allPeople.add(allPeople.size(), Person.createFemale(peopleName, BD));
}
}
if (cmdName == "-u") {
int peopleId = Integer.parseInt(args[0]);
String peopleName = args[1];
String peopleSex = args[2];
SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern("dd/MM/yyyy");
Date peopleBD = format.parse(args[3]);
allPeople.get(peopleId).setName(peopleName);
allPeople.get(peopleId).setBirthDate(peopleBD);
if (peopleSex == "м") {
allPeople.get(peopleId).setSex(Sex.MALE);
}
else
{
allPeople.get(peopleId).setSex(Sex.FEMALE);
}
}
if (cmdName == "-d") {
int peopleId = Integer.parseInt(args[0]);
Person person = allPeople.get(peopleId);
allPeople.remove(person);
}
if (cmdName == "-i") {
int peopleId = Integer.parseInt(args[0]);
String peopleName = allPeople.get(peopleId).getName();
String peopleSex = allPeople.get(peopleId).getSex() == Sex.MALE ? "м" : "ж";
SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern("dd-MMM-yyyy");
Date peopleBD = format.parse(args[3]);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.out.println(peopleName + " " + peopleSex + dateFormat.format(peopleBD));
}
}
}