我正在修改我没有编写使用JavaMail的代码,并且在理解为什么JavaMail API的设计方式方面有点麻烦。我有这样的感觉,如果我明白了,我可以做得更好。为什么JavaMail Transport.send()是一个静态方法?
我们呼吁:
transport = session.getTransport("smtp");
transport.connect(hostName, port, user, password);
那么,为什么Eclipse的警告我说,这:
transport.send(message, message.getAllRecipients());
是一个静态方法的调用?
如果我无法使用该对象发送消息,为什么我会获取传输对象并提供特定的设置? Transport类甚至知道用什么服务器和其他设置来发送消息?它工作正常,很难相信。如果我为两个不同的服务器实例化Transport对象,该怎么办?它如何知道使用哪一个?
在写这个问题的过程中,我发现,我真的应该叫:
transport.sendMessage(message, message.getAllRecipients());
那么什么是静态Transport.send()方法的目的是什么?这仅仅是糟糕的设计,还是有这样的理由?