我正在尝试编写一个简单的Java程序,它只是发送电子邮件并从收件箱中的电子邮件中检索文本,我对Authenticator对象的工作原理有点困惑。为什么在构造函数之后会立即包含代码?它是如何运行的?我找到了这个用于创建Session对象的示例代码,它工作正常,但我以前从未见过这种符号,在其他地方找不到任何其他示例。
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
答案 0 :(得分:1)
来自The Java™ Tutorials - Anonymous Classes:
匿名类使您可以使代码更简洁。它们使您能够同时声明和实例化一个类。他们就像当地的班级,除了他们没有名字。如果您只需要使用本地类一次,请使用它们。
更直接的方法是在连接到商店时调用带有用户名和密码的connect方法。发送邮件时,请使用带有用户名和密码的静态Transport.send方法。