서브 클래스 매개 변수 컴파일 오류 클래스, 그래서 나는 우편물을 서브 클래스 및 buildMailBody
방법을 재정의 :스칼라 내부의 경우 내가 문자열, 리프트 메일러에 대한 XML이 아닌 노드에서 HTML 이메일의 본문을 설정할
class HtmlMailer extends Mailer {
final case class HtmlMailBodyType(text: String) extends MailBodyType
override protected def buildMailBody(tab: MailBodyType) = {
tab match {
case HtmlMailBodyType(text) =>
val bp = new MimeBodyPart
bp.setText(text, charSet, "html")
bp
case _ => super.buildMailBody(tab)
}
}
}
object HtmlMailer extends HtmlMailer
내가하려고 사용 :
import net.liftweb.util.Mailer
import Mailer._
HtmlMailer.sendMail(From(sender.email), Subject(subject), To(user.email), HtmlMailBodyType(body))
내가 컴파일 오류 얻을 :
error: type mismatch;
found : net.liftweb.util.Mailer.From
required: com.mypackage.HtmlMailer.From
Error occurred in an application involving default arguments.
HtmlMailer.sendMail(From(sender.email), Subject(subject), To(user.email), HtmlMailBodyType(body))
왜이 시간입니다 호소하고 어떻게 올바르게 고칠 수 있습니까?
나는 HtmlMailer._를 가져 오기 Mailer._을 변경하며 일을하지만, 서로 다른 매개 변수 유형을 가지고 있기 때문에 내가Mailer
대신
HtmlMailer
를 대체 할 수는, Liskov 대체 원칙을 나누기 믿지?