Не пойму, почему в If-else выбрасывается исключение. Если else с throw new IllegalArgumentException() закоментить - все собирается как надо.
package com.javarush.task.task25.task2502;
import java.util.ArrayList;
import java.util.List;
/*
Машину на СТО не повезем!
*/
public class Solution {
public static enum Wheel {
FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT
}
public static class Car {
protected List<Wheel> wheels;
public Car() {
wheels = new ArrayList<>();
String[] array = loadWheelNamesFromDB();
// for (String s : array) {
// System.out.println(Wheel.valueOf(s));
// }
for (String s : array) {
if (s == null) {
throw new NullPointerException();
}
if (s.isEmpty()) {
throw new IllegalArgumentException();
}
for (Wheel w : Wheel.values()) {
if (s.equals(w.toString())) {
wheels.add(Wheel.valueOf(s));
}
else { //здесь выбрасывает исключение
throw new IllegalArgumentException();
}
}
}
}
protected String[] loadWheelNamesFromDB() {
//this method returns mock data
return new String[]{"FRONT_LEFT", "FRONT_RIGHT", "BACK_LEFT", "BACK_RIGHT"};
}
}
public static void main(String[] args) {
Car car = new Car();
for (Wheel w : car.wheels) {
System.out.println(w);
}
}
}