代码似乎微不足道,但我不理解返回值中的一件事:
trait JdbcTemplate {
def query(psc: PreparedStatementCreator,
rowMapper: RowMapper): List[_]
}
List[_]
究竟是什么意思?不会使用List[Any]
暗示同样的事情吗?我在哪里可以阅读这些差异?
答案 0 :(得分:2)
Any
是一种特定的,已知的(虽然完全包容)类型。将下划线用作类型参数是对于所谓的“存在类型”的更麻烦和更通用的语法的简写。存在类型是非特定的:他们说至少有一种类型可以在这里。它们是通用量化的双重性,是对更常用的无界类型参数的解释。例如,def method[T](t: T) ...
。在此构造中,T
可以绑定到任何类型,但在实例化该类型的每个位置(每次调用该方法),它都绑定到特定类型。
答案 1 :(得分:1)
鉴于_
表示您不关心类型和Any
is supertype of everything,两者都是相同的。