2

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

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

1 回答 1

1

来自Java™ 教程 - 匿名类

匿名类使您能够使您的代码更简洁。它们使您能够同时声明和实例化一个类。它们类似于本地类,只是它们没有名称。如果您只需要使用一次本地类,请使用它们。

JAVAMAIL API 常见问题解答

更直接的方法是在连接到 Store 时调用使用用户名和密码的 connect 方法。发送消息时,使用带有用户名和密码的静态 Transport.send 方法。

于 2015-12-22T22:04:50.143 回答