Добрый день.
Возникла проблема с решением задач через IDEA при запуске программы выдает:
Error:Module '3.JavaMultithreading' production: java.lang.ClassCastException: org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType cannot be cast to org.jetbrains.jps.builders.java.dependencyView.TypeRepr$ClassType
Переустановка IDEA и плагина ничего не дают.
Началось это на задаче 2209 из Multithreading, другие задачи из этого раздела тоже выдают такую же ошибку. Этот же код в новом проекте запускается нормально. Задачи из Core и Syntax запускаются нормально.
Подскажите как решить проблему
package com.javarush.task.task22.task2209;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
reader = new BufferedReader(new FileReader(fileName));
String textFromFile = "";
while (reader.ready()) {
textFromFile += reader.readLine() + " ";
}
String[] words = textFromFile.split(" ");
StringBuilder result = getLine(words);
System.out.println(result.toString());
reader.close();
}
public static StringBuilder getLine(String... words) {
StringBuilder sb = null;
for (int i = 0; i < words.length; i++) {
String[] buffer = new String[words.length];
buffer[0] = words[i];
int count = 0;
for (int j = 1; j < buffer.length; j++) {
if (count != i) {
buffer[j] = words[count];
} else {
j--;
}
count++;
}
System.out.println(Arrays.toString(buffer));
sb = parseArrayOfWords(buffer);
if (words.length == sb.toString().split(" ").length) {
return sb;
}
String[] subArray = new String[buffer.length - 1];
for (int k = 0; k < subArray.length - 1; k++) {
String element1 = buffer[1];
for (int n = 0; n < subArray.length; n++) {
if (n == subArray.length - 1) {
subArray[n] = element1;
} else {
subArray[n] = buffer[n + 2];
}
buffer[n + 1] = subArray[n];
}
System.out.println(Arrays.toString(buffer));
sb = parseArrayOfWords(buffer);
if (words.length == sb.toString().split(" ").length) {
return sb;
}
}
}
return sb;
}
public static StringBuilder parseArrayOfWords(String[] words) {
StringBuilder sb = new StringBuilder();
List<String> listOfWords = new ArrayList<>();
for (int j = 0; j < words.length - 1; j++) {
for (int i = 0; i < words.length; i++) {
String word = words[i];
if (!listOfWords.contains(word)) {
if (sb.length() == 0) {
sb.append(word);
listOfWords.add(word);
} else {
if ((sb.charAt(sb.length() - 1) + "").equalsIgnoreCase(word.charAt(0) + "")) {
sb.append(" ").append(word);
listOfWords.add(word);
}
}
}
}
}
return sb;
}
}