javamail Authenticator的构造函数如何工作?

时间:2015-12-22 21:56:42

标签: java constructor javamail authenticator

我正在尝试编写一个简单的Java程序,它只是发送电子邮件并从收件箱中的电子邮件中检索文本,我对Authenticator对象的工作原理有点困惑。为什么在构造函数之后会立即包含代码?它是如何运行的?我找到了这个用于创建Session对象的示例代码,它工作正常,但我以前从未见过这种符号,在其他地方找不到任何其他示例。

Session session = Session.getInstance(props,
  new javax.mail.Authenticator() {
     protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
     }
  });

1 个答案:

答案 0 :(得分:1)

来自The Java™ Tutorials - Anonymous Classes

  

匿名类使您可以使代码更简洁。它们使您能够同时声明和实例化一个类。他们就像当地的班级,除了他们没有名字。如果您只需要使用本地类一次,请使用它们。

来自JAVAMAIL API FAQ

  

更直接的方法是在连接到商店时调用带有用户名和密码的connect方法。发送邮件时,请使用带有用户名和密码的静态Transport.send方法。