Я столкнулся с проблемой при компиляции моего приложения, ошибка: incompatible types: void cannot be converted to javax.mail.internet.MimeMessage
Это происходит в этой части кода:
getEmailService().parseEmail(parseEmailRequest.getFileName(), parseEmailRequest.getFileContent());
, и методы следующие :
private EmailService getEmailService() {
return new EmailService();
}
и
public MimeMessage parseEmail(String fileName, Part fileContent) {
return getParseEmailUseCase()
.withEmailFileStorage(getEmailFileStorage())
.withFilePathBuilder(getFilePathBuilder())
.withEmailParser(getEmailParser())
.withFileName(fileName)
.withFileContent(fileContent)
.run();
}
Это странно, потому что я хотел это как переменную message
private void setEmailMessage(ParseEmailRequest parseEmailRequest) {
message = getEmailService()
.parseEmail(parseEmailRequest.getFileName(), parseEmailRequest.getFileContent());
}
message
это поле
private MimeMessage message;
, и это когда я получаю ошибку и когда удаляю message
и оставляю только:
getEmailService().parseEmail(parseEmailRequest.getFileName(), parseEmailRequest.getFileContent());
программа компилируется. Более того, когда я использую свою IDE (intellij) для присвоения переменной вышеуказанному коду, автоматически выбирается MimeMessage
, поэтому getEmailService().parseEmail(parseEmailRequest.getFileName(), parseEmailRequest.getFileContent());
возвращает MimeMessage
так, как я хотел.
Все вышеперечисленное счастлив в классе EmailHandler
.
Я не понимаю, откуда взято void
в сообщении об ошибке, так как мои методы возвращают указанные типы. Что мне здесь не хватает?