Я пересматриваю код. Я не писал, что использует JavaMail, и немного затруднился понять, почему API JavaMail разработан так, как он есть. У меня такое чувство, что, если я понял, я мог бы работать лучше.Почему JavaMail Transport.send() статический метод?
Мы называем:
transport = session.getTransport("smtp");
transport.connect(hostName, port, user, password);
Так почему Затмение предупреждает меня, что это:
transport.send(message, message.getAllRecipients());
является вызовом статического метода?
Почему я получаю объект транспорта и предоставляю параметры, которые являются конкретными для него, если я не могу использовать этот объект для отправки сообщения? Как класс транспорта даже знает, какие серверные и другие параметры использовать для отправки сообщения? Он работает нормально, чему трудно поверить. Что делать, если я создал объекты транспорта для двух разных серверов; как он узнает, какой из них использовать?
В процессе написания этого вопроса, я обнаружил, что я действительно должен называть:
transport.sendMessage(message, message.getAllRecipients());
Так что цель метода статического Transport.send()? Это просто плохой дизайн, или есть причина, по которой это происходит?