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;

}
4

1 に答える 1

2

セミコロンについて混乱している場合、コードはMimeMessagePreparatorのサブクラスである匿名の内部クラスを作成しています。セミコロンは、preparator変数への割り当ての終わりです。

于 2012-12-19T19:11:24.697 に答える