【发布时间】:2019-12-11 11:58:12
【问题描述】:
def jobEventToJobEventTimeLine(jobEvent: JobEvent): JobEventTimeline = {
val OpFields(stepId, jobBaseStepId, fieldId) = extractFromOp(jobEvent.getOp)
JobEventTimeline(
jobEvent.getJobId,
if (jobEvent.isSetTyp) Some(jobEvent.getTyp.toString) else None,
if (jobEvent.isSetInPlanning) Some(jobEvent.inPlanning) else None,
jobEvent.getPedigree.getTeamId,
jobEvent.getPedigree.getActorId,
if (jobEvent.getPedigree.isSetAdminActorId) Some(jobEvent.getPedigree.getAdminActorId) else None,
jobEvent.getPedigree.getSessionId,
if (jobEvent.getPedigree.isSetClientSessionId) Some(jobEvent.getPedigree.getClientSessionId) else None,
jobEvent.getPedigree.getCreatedAt,
jobEvent.getPedigree.getSeqId,
if (jobEvent.getPedigree.isSetIsSideEffect) Some(jobEvent.getPedigree.isSideEffect) else None,
jobEvent.getOp.getSetField.toString,
stepId,
jobBaseStepId,
fieldId,
if (jobEvent.isSetReceivedAt) Some(jobEvent.getReceivedAt) else None
)
}
def ToJobEvent(binData: Array[Byte]): Option[JobEventTimeline] = FuncUtils.deserializeJobEvent(binData) flatMap Some(jobEventToJobEventTimeLine(_))
我正在尝试使用 flatMap 作为绑定运算符来将 monadic Value 应用于 monad,但是我的 IDE 说 flatMap 无法解析。这样做的正确方法是什么?
【问题讨论】: