У меня есть ResultSet, равный com.datastax.driver.core.ResultSet
, из которого я беру ExecutionInfo, а из executeInfo я извлекаю 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.microsecond
, когда я делаю 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