如何将M类型的x值分配给选项[M]

时间:2019-04-26 16:35:23

标签: scala

我正在尝试将类型M的x元素分配给option [M],但出现错误:

def find(id: Int): Option[M] = dbTable.instances(id)//instances is Map[int,M]
type mismatch;
[error] found : M
[error] required: Option[M]
[error] def find(id: Int): Option[M] = dbTable.instances(id)
[error] ^
[error] one error found
[error] (Compile / compileIncremental) Compilation failed
[error] Total time: 8 s, completed Apr 26, 2019, 1:11:13 PM

2 个答案:

答案 0 :(得分:1)

尝试

def find(id: Int): Option[M] = Some(dbTable.instances(id))

(或

def find(id: Int): Option[M] = Option(dbTable.instances(id))

如果dbTable.instances(id)可以为null)。

如果a的类型为A,则Some(a)的类型为Option[A]

答案 1 :(得分:0)

Scala Map api使用.get方法支持此功能。

def find(id: Int): Option[M] = dbTable.instances.get(id)