我有一个结果集
com.datastax.driver.core.ResultSet
从中获取ExecutionInfo,从ExecutionInfo中提取queryTrace,如您所见,代码如下。
resultSet.getAllExecutionInfo.forEach { exeInfo: ExecutionInfo =>
val queryTimeTaken: FiniteDuration = exeInfo.getQueryTrace.getDurationMicros.microsecond //this works fine if i do getDurationMicros microsecond it return ev.R
exeInfo.getQueryTrace.getEvents.forEach { event =>
if (queryTimeTaken > timeTakenLimit) {
TraceLogger.info {
s"DateTime = ${sdf.format {event.getTimestamp}} Description = ${event.getDescription} " +
s"TimeElapsedMicro = ${event.getSourceElapsedMicros} Statement = ${exeInfo.getStatement}" +
s" TimeTaken =$queryTimeTaken"
}
}
}
}
val queryTimeTaken:FiniteDuration=exeInfo.getQueryTrace.getDurationMicros.micros秒
getDurationMicros.microsecond
它返回FiniteDuration对象,但如果我返回
getDurationMicros microsecond
它回来了
ev.R
类型
有人能解释一下为什么它要重做这样的类型吗。这两条线的空间有什么不同?
它是否与后缀表达式求值有关?
编辑一个:
def a = 500
val x: FiniteDuration = a.microsecond // this works fine
val y: FiniteDuration = 500 microsecond
def a = 500
val x: ev.R = a.microsecond() // this gives ev.R
val y: FiniteDuration = 500 microsecond
def a = 500
val x: FiniteDuration = a microsecond // this works fine
val y: FiniteDuration = 500 microsecond