Приступим) Загрузил задачу в Intelij IDEA, написал код. Запускаю. Компилятор жалуеться на файл, который я сам не редактировал, который шёл вместе с задачей. Посмотрел на дерево файлов в IDEA и увидел что там какой-то баг. Исправил файлы по шаблону и запустил компилятор. Всё работает. Запускаю валидатор - В случае некорректных данных метод getPartOfString() должен бросить исключение StringForSecondThreadTooShortException, если имя трэда(threadName) Solution.SECOND_THREAD_NAME. (Жалуется на забаганый файл). Думаю - пересоздам проект на сайте, мб там все будет ок. Создаю --> открываю дерево классов на сайте и все ок. Запускаю компилятор и он жалуеться на этот-же файл (уже на сайте JavaRush). Вообщем даже не знаю что делать...
Ошибка компиляции вместе с забаганым файлом
Ошибка после исправления файлов
package com.javarush.task.task22.task2201;
/*
Строки нитей или строковые нити? Вот в чем вопрос
*/
public class Solution {
public static void main(String[] args) {
new Solution();
}
public static final String FIRST_THREAD_NAME = "1#";
public static final String SECOND_THREAD_NAME = "2#";
private Thread thread1;
private Thread thread2;
private Thread thread3;
public Solution() {
initThreads();
}
protected void initThreads() {
this.thread1 = new Thread(new Task(this, "A\tB\tC\tD\tE\tF\tG\tH\tI"), FIRST_THREAD_NAME);
this.thread2 = new Thread(new Task(this, "J\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ"), SECOND_THREAD_NAME);
this.thread3 = new Thread(new Task(this, "\t\t"), "3#");
Thread.setDefaultUncaughtExceptionHandler(new OurUncaughtExceptionHandler());
this.thread1.start();
this.thread2.start();
this.thread3.start();
}
public synchronized String getPartOfString(String string, String threadName) {
try {
int index1 = string.indexOf("\t") + 1;
int index2 = string.indexOf("\t", index1);
return string.substring(index1, index2);
} catch (StringIndexOutOfBoundsException e) {
if (threadName == Solution.FIRST_THREAD_NAME) throw new StringForFirstThreadTooShortException();
else if (threadName == Solution.SECOND_THREAD_NAME) throw new TooShortStringSecondThreadException();
else throw new RuntimeException();
}
}
}