Граждане джавараша, помогите разобраться. Компилятор выдаёт ошибку "ArrayIndexOutOfBoundsException" и ссылается на строку "if (args[0].equals("-c")){" - никак не могу понять, почему...вроде ж массим строковый создан, обращаюсь к нулевому элементу. package com.javarush.task.task17.task1710;

import java.util.ArrayList; import java.util.Date; import java.util.List; import java.io.*; import java.text.ParseException; import java.util.Locale; import java.util.Date; import java.text.SimpleDateFormat;

/ 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 {
    //start here - начни тут
    String name;
    Sex sex;
    int id;
    Person p;

    SimpleDateFormat date = new SimpleDateFormat("dd/MM/yyyy",Locale.ENGLISH);
    Date birthDay;
        if (args[0].equals("-c")){
            name = args[1];
            sex = (args[2] == "м") ? Sex.MALE : Sex.FEMALE;
            birthDay = date.parse(args[3]);
            if (sex == Sex.MALE){
                p = Person.createMale(name, birthDay);
            }
            else {
                p = Person.createFemale(name, birthDay);
            }
            allPeople.add(p);
            for (int i = 0; i < allPeople.size(); i++){
                System.out.println(allPeople.get(i));
            }
            System.out.println(allPeople.indexOf(p));
        }
        else if (args[0].equals("-u")){
            name = args[1];
            sex = (args[2] == "м") ? Sex.MALE : Sex.FEMALE;
            birthDay = date.parse(args[3]);
            id = Integer.parseInt(args[4]);
            p = allPeople.get(id);
            p.setName(name);
            p.setSex(sex);
            p.setBirthDay(birthDay);
        }    
        else if (args[0].equals("-d")){
            id = Integer.parseInt(args[4]);
            allPeople.get(id).setName(null);
            allPeople.get(id).setSex(null);
            allPeople.get(id).setBirthDay(null);
        }
        else if (args[0].equals("-i")){
            id = Integer.parseInt(args[4]);
            System.out.println(allPeople.get(id).getName() + " " + allPeople.get(id).getSex() + " " + date.format(allPeople.get(id).getBirthDay()));
        }
}

}

задан 02 Мар, 07:02

Xucn's gravatar image

Xucn
345
одобрено: 20%


Возможно в программу не передаются параметры в командной строке и соответственно args[0] просто не существует

ссылка

опубликован 02 Мар, 12:26

SemOzersk's gravatar image

SemOzersk
3954
одобрено: 35%

Да, только-только увидел в коментах, что нужно сделать для передачи аргументов. Хоть бы попрозрачнее об этом написали разрабы. Ща доковыряю "-i"и задача будет решена.

(02 Мар, 12:38) Xucn
Ваш ответ
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×129
×4

Задан: 02 Мар, 07:02

Просмотров: 68 раз

Отредактирован: 02 Мар, 12:38