Ich versuche, wenn einige Web-Seite mit dem folgenden Funktion ist bis zu überprüfen:Scala Liftweb - Mustertyp ist nicht kompatibel mit den erwarteten Typ
import net.liftweb.common.{Failure, Empty, Full, Box} // 1
// 2
def isAlive = { // 3
httpClient.getAsString("http://www.google.com", Nil) match { // 4
case f : Full[String] => true // 5
case f : Failure => false // 6
case Empty => false // 7
} // 8
} // 9
Die Funktion getAsString Rückgabetyp ist net.liftweb.common.Box[String]
Die Funktion ganz gut funktioniert, aber mein Problem ist, dass, wenn ich ersetzen Linie 6 mit dieser Zeile:
case Failure => false // 6
ich den Fehler bekommen:
error: pattern type is incompatible with expected type;
found : object net.liftweb.common.Failure
required: net.liftweb.common.Box[String]
case Failure => false
(gleiche gilt für die Linie 5)
Warum geschehen ist das? Warum muss ich eine Variable für die Übereinstimmung verwenden und kann die Übereinstimmung nicht nur nach dem Typ durchführen?