代码似乎微不足道,但我不理解返回值中的一件事:
trait JdbcTemplate {
def query(psc: PreparedStatementCreator,
rowMapper: RowMapper): List[_]
}
这里到底是什么List[_]
意思?不会使用List[Any]
暗示同样的事情吗?我在哪里可以阅读差异?
代码似乎微不足道,但我不理解返回值中的一件事:
trait JdbcTemplate {
def query(psc: PreparedStatementCreator,
rowMapper: RowMapper): List[_]
}
这里到底是什么List[_]
意思?不会使用List[Any]
暗示同样的事情吗?我在哪里可以阅读差异?
Any
是一种特定的、已知的(尽管完全包罗万象)类型。使用下划线作为类型参数是对所谓的“存在类型”的更繁琐和更通用的语法的简写。存在类型是非特定的:他们说至少有一种类型可以去这里。它们是通用量化的对偶,即对更常用的无界类型参数的解释。例如,def method[T](t: T) ...
。在此构造中,T
可以绑定到任何类型,尽管在实例化该类型的每个位置(每次调用该方法),它都绑定到特定类型。
鉴于这_
意味着您不关心类型并且Any
是一切的超类型,两者都是相同的。