2012-12-19 69 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的一個子類。分號是分配給預處理變量的結尾。