【问题标题】:How to initialize Email without hardcoding using sendgrid with java如何使用带有 java 的 sendgrid 初始化电子邮件而不进行硬编码
【发布时间】:2018-09-03 11:08:04
【问题描述】:

如何在没有硬编码的情况下在我的服务类中初始化电子邮件(例如:Email to = new Email("1234@gmail.com")。我使用以下代码初始化我的电子邮件,但它返回一些错误。帮助我解决这个问题。我正在使用 SendGrid API。这里是我的服务代码:

Email to = new Email();

to.setEmail(emailIDTO.getTO());  //emailIDTO is an object of IDTO class
// IDTO class takes the value from the JSON request body and initializes it to the email object  

以及相关的IDTO sn-p:

public Email getTo(){ 
    return to; 
} // method getTo return the mail id of the recipient. 

public Email createTo(EmailIDTO emailIDTO){ 
   to.setName(emailIDTO.getName(); 
   to.setEmail(emailIDTO.getEmail()); 
   return null; 
}

错误:

setEmail (java.lang.String) in Email cannot be applied to (com.sendgrid.Email)

【问题讨论】:

  • 您好,请提供您遇到的错误的详细信息。还要解释一下“没有硬编码”是什么意思?什么是 IDTO 课程?如果您在问题中包含更多详细信息,那么肯定有人会帮助您。同时请阅读stackoverflow.com/help/how-to-ask
  • 抱歉让问题不清楚。我已经做了你说的改变。 @迈克尔
  • 太好了,现在我们正在取得进展。您是否还可以包含您的emailIDTO.getTO() 方法的 sn-p。该错误表明您的辅助方法返回类型与setEmail 的预期参数之间存在类型不匹配。
  • public Email getTo(){ return to; } // 方法 getTo 返回收件人的邮件 ID。 public Email createTo(EmailIDTO emailIDTO){ to.setName(emailIDTO.getName(); to.setEmail(emailIDTO.getEmail()); return null; }
  • 我再次更新了您的问题以包含相关代码。请在以后提出问题时注意这一点。如果您觉得我的回答对您有帮助,请采纳。

标签: java spring sendgrid


【解决方案1】:

您的代码失败了,因为您的 emailIDTO.getTO() 方法正在返回 Email 对象,您正在尝试使用接受 String 参数的方法分配该对象。在这种情况下,错误是不言自明的。

您可以尝试以下方法之一:

选项 1 - 直接从 IDTO 设置对象:

Email to = emailIDTO.getTO();

选项 2 - 提取字符串值:

Email to = new Email();
to.setEmail(emailIDTO.getTO().getEmail());

注意 - 您的 IDTO.createTo() 方法返回 null,这可能会产生意想不到的后果。也许您想返回to

【讨论】:

  • 非常感谢....抱歉让问题不清楚。我是堆栈溢出和软件开发的新手。下次我会按照提示正确操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2016-07-12
相关资源
最近更新 更多