我在scala中编写身份验证方法。这是我的功能:
def getPasswordAuthentication(frm:String, psw:String):Authenticator=
{
val authen = new PasswordAuthentication(frm, psw)
return authen.asInstanceOf[Authenticator]
}
当我运行此方法时发生错误。
错误: javax.mail.PasswordAuthentication无法强制转换为javax.mail.Authenticator
这里是原始的Java代码:
Session.getDefaultInstance(mailProperties, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(smtp_user, smtp_pass);
}});
然后我修改为Scala。
答案 0 :(得分:2)
您可以在java代码中正确执行操作,在覆盖getPasswordAuthentication方法后获取Authenticator实例。
def getPasswordAuthentication(uname:String, psw:String):Authenticator=
{
new Authenticator(){
def getPasswordAuthentication():PasswordAuthentication = {
new PasswordAuthentication(uname, psw);
}}
}
答案 1 :(得分:0)
getPasswordAuthentication()
方法返回Authenticator实例,该方法返回有问题的PasswordAuthentication实例。