나는 JavaMail을 사용하여 전자 메일을 보내는 Javafx 응용 프로그램을 작성 중입니다. 새 세션을 만들 때 구문을 사용합니다. 람다 식을 단순화하는 데 사용할 수있는 경우세션에서 람다 식 사용
Session session = Session.getInstance(props,
//Use labmda expression?
new javax.mail.Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication(userName, password);
}
}
);
궁금해서 그와 같은
() -> return new java.mail.PasswordAuthentiaction(userName, password)
하지만 난 그게 호환되지 않는 유형을 발생하고, 인증 자 기능 인터페이스 아니라고 말한다 사용할 때마다.
인증 프로그램을 마무리하고 메소드를 제외한 메소드의 기본 구현을 구현해야 할 수도 있습니다. 그런 다음 당신은 당신의 목적을 위해 사용할 수있는 기능적인 인터페이스를 갖게 될 것입니다. –
"* 사용할 때마다 호환되지 않는 타입을 던지고 Authenticator는 기능적 인터페이스가 아닙니다 *"라고 말합니다. "Authenticator"가 [기능 인터페이스] (https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#approach6) (참고 : 추상 메소드가 하나 뿐인 추상 클래스는 기능적 * 인터페이스 *로 간주되지 않습니다.) 그렇다면 아닙니다. 그 방법을 구현하기 위해 람다 (lambda)를 사용하십시오. – Pshemo
구문이 올바르지 않다고 생각합니다. return 문 주위에 대괄호가 필요합니다. – tier1