我正在浏览一些scala代码。我遇到了一个标志"<:"。这是什么意思?
以下是代码。
abstract class HierarchicalDatabaseObject[TParent <: DatabaseObject](databaseId: String) extends DatabaseObject(databaseId)
答案 0 :(得分:3)
这是一个上限的通配符。如果您熟悉Java,就像? extends DatabaseObject
。
这意味着,您输入的类型必须是DatabaseObject
的子类型。
这基本上保证了您的泛型类型至少具有DatabaseObject
所具有的所有相同方法和属性,使其比未绑定时更有用。
您可以在documentation中查看更多示例。