编译时出现不兼容的类型问题 - 无效为 MimeMessage



我在编译应用程序时遇到问题,错误是: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来自哪里,因为我的方法返回指定的类型。我在这里错过了什么?

getEmailService().(parseEmailRequest.getFileName(), parseEmailRequest.getFileContent());

应该是:

getEmailService().parseEmail(parseEmailRequest.getFileName(), parseEmailRequest.getFileContent());

您没有为代码提供太多上下文,但根据我的假设,您打算在EmailService中创建message对象。getEmailService()将一个实例返回到对象EmailService然后允许您调用parseEmail()方法。请注意,如果EmailService旨在作为某种工厂类,则其他类在使用 publicity 修饰符private时将无法使用其方法。

最新更新