у меня есть свой класс DTO что:Как добавить интерфейс к классу в java?
public class EmailResponse {
// Make public to avoid getters and setters
public Email email;
public RequestData reqData;
public EmailResponse() {
super();
}
}
и я хочу реализовать ему этот интерфейс:
public interface IAssertionErrorDo {
public void onErrorDo();
}
, но я хочу сделать это во время выполнения, я не хочу трогать «EmailResponse», потому что было бы нехорошо сделать это, реализуя этот интерфейс, потому что они не принадлежат к одному и тому же слою, я имею в виду, что EmailResponse будет принадлежать уровню обслуживания, а IAssertionError будет принадлежать тестовому уровню. Я использую TestNG.
Вы знаете, как я мог это сделать? С уважением
EDIT: Моя реализация заключается в следующем:
EmailResponse emailResponse = emailService.getUserEmail(userId);
И причина я хочу сделать это "инъекции", потому что у меня есть
public class LoggingAssert
extends Assertion {
private static final Logger LOGGER = LoggerFactory.getLogger(LoggingAssert.class);
private IAssertionErrorDo dataE;
@Override
public void onAssertFailure(IAssert a, AssertionError ex) {
LOGGER.info("[ERROR] " + a.getMessage());
if (this.dataE != null) {
this.dataE.onErrorDo();
}
}
public LoggingAssert setOnErrorDo(IAssertionErrorDo object) {
this.object = object;
return this;
}
}
loggingAssert.setOnErrorDo(emailResponse).assertNotNull(emailResponse.getEmail().getId(),
"Checking created email doesn't exists");
Так я хотите, чтобы assert не выполнял метод onErrorDo() из emailResponse
И как это могло быть реализовано для этого? Я отредактировал сообщение с тем, как у меня действительно есть его. Спасибо за вашу помощь – jscherman
Я не могу понять цель там .. но вы пытаетесь сделать обработчик исключений? – bakriawad
Я отредактировал еще раз: P Извините за это. Я хочу сделать метод onErrorDo(), если assert failed. – jscherman