2012-12-19 101 views
0

这是什么意思在java中......我看到一些新的东西我没有带见过像这之前...此代码使用Spring框架发送邮件javamailsender类阔叶邮件发送者类

public MimeMessagePreparator buildMimeMessagePreparator(final HashMap<String,Object> props) { 
    MimeMessagePreparator preparator = new MimeMessagePreparator() { 
     public void prepare(MimeMessage mimeMessage) throws Exception { 
      EmailTarget emailUser = (EmailTarget) props.get(EmailPropertyType.USER.getType()); 
      EmailInfo info = (EmailInfo) props.get(EmailPropertyType.INFO.getType()); 
      MimeMessageHelper message = new MimeMessageHelper(mimeMessage, (info.getAttachments() != null && info.getAttachments().size() > 0)); 
      message.setTo(emailUser.getEmailAddress()); 
      message.setFrom(info.getFromAddress()); 
      message.setSubject(info.getSubject()); 
      if (emailUser.getBCCAddresses() != null && emailUser.getBCCAddresses().length > 0) { 
       message.setBcc(emailUser.getBCCAddresses()); 
      } 
      if (emailUser.getCCAddresses() != null && emailUser.getCCAddresses().length > 0) { 
       message.setCc(emailUser.getCCAddresses()); 
      } 
      String messageBody = info.getMessageBody(); 
      if (messageBody == null) {     
       messageBody = buildMessageBody(info, props); 
      } 
      message.setText(messageBody, true); 
      for (Attachment attachment : info.getAttachments()) { 
       ByteArrayDataSource dataSource = new ByteArrayDataSource(attachment.getData(), attachment.getMimeType()); 
       message.addAttachment(attachment.getFilename(), dataSource); 
      } 
     } 
    }; // why there is a semicolon here 
    return preparator; 

} 

回答

2

如果您对分号感到困惑,代码将创建一个匿名内部类,它是MimeMessagePreparator的一个子类。分号是分配给预处理变量的结尾。