2016-04-12 9 views
2

Ich gehe durch einen Scala-Code. Ich bin auf ein Schild "<:" gestoßen. Was heißt das?Was bedeutet dieses Zeichen "<:" in scala?

Hier ist der folgende Code.

abstract class HierarchicalDatabaseObject[TParent <: DatabaseObject](databaseId: String) extends DatabaseObject(databaseId) 
+1

Es ist oberer Typ gebunden: http://www.scala-lang.org/old/node/136 –

+2

Mögliches Duplikat von [Scala Typ Parameter Grenzen] (http://stackoverflow.com/questions/6713385/scala- type-parameter-bounds) – Ven

+0

Mögliches Duplikat von [Was bedeuten alle symbolischen Operatoren von Scala?] (http://stackoverflow.com/questions/7888944/what-do-all-of-scalas-symbolic-operators-mean) –

Antwort

3

Es ist eine obere begrenzte Wildcard. Wenn Sie mit Java vertraut sind, ist es wie ? extends DatabaseObject.

Dies bedeutet, dass der eingegebene Typ ein Subtyp von sein muss. Dies garantiert im Grunde, dass Ihr generischer Typ mindestens die gleichen Methoden und Eigenschaften hat, die hat, so dass es viel nützlicher ist, als wenn es nicht gebunden ist.

Sie können weitere Beispiele in der documentation überprüfen.