Method refers to the missing exception в чем ошибка?
По какой причине мне выдает следующую ошибку?
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method statusValidator(String) from the type Cave refers to the missing type StatusSetterException
StatusSetterException cannot be resolved to a type
at Entities.Cave$CaveDoor.setStatus(Cave.java:23)
at Main.main(Main.java:110)
У меня есть вложенный класс CaveDoor.
public class CaveDoor{
private String name;
private String status;
public CaveDoor(String name){
this.name = name;
}
public String getName(){
return name;
}
//status может принимать только CLOSED или OPENED
public void setStatus(String status){
try {
statusValidator(status);
this.status = status;
}
catch (StatusSetterException e) {
System.out.println(e);
}
}
}
public void statusValidator(String string) throws StatusSetterException{
if ( (!string.equals( "OPENED")) || (!string.equals( "CLOSED"))) {
throw new StatusSetterException("status может принимать только CLOSED или OPENED");
}
}
В main я создаю экземпляр этого класса и вызываю метод setStatus.
Cave.CaveDoor caveDoor = Cave.new CaveDoor("Дверь пещеры");
caveDoor.setStatus("OPENED");
Сама Exception у меня самая обыкновенная:
package Exceptions;
public class StatusSetterException extends Exception{
public StatusSetterException(String message){
super(message);
}
}
По какой причине у меня в импорте указано следующее?? Возможно это и есть ответ на мой вопрос в целом, но я не могу понять.
The import Entities.Cave.CaveDoor is never used
P.s. не спрашивайте почему у меня статус - строка. Так надо.
Ответы (1 шт):
Я не знаю что именно произошло, но я просто создал новый exception с абсолютно таким же наследованием от Exception и тем же конструктором, и всё заработало.Правда, сама логика, котороую я ожидаю от программы (выводить ошибку в случае неверного задания статуса, и ничего не выводить в противном), не работает вследствие того, что по какой то причине у меня метод setStatus не меняет статус, и тот остается null.
upd: проблема в .equals. знак "!" не отрицал входные значения.