Котлин: Force встроенный метод, чтобы сохранить количество определенных линий

голоса
0

Таким образом, у меня есть этот метод, который я хочу использовать для регистрации, а также возвращение объекта вошли:

inline fun <T> T.btwLog(prefix:String=)=apply { Timber.d($prefix->${toString()}) }

Класс Древесина из протоколирования библиотеки, а также (если настроить таким образом) показывает линию, на которой он был назван, который также почему метод инлайн (показать линию и правильный класс, где его называли) Например :

val b = someThingComplex().btwLog()

В основном это работает, единственная проблема заключается в том, что номер строки неправильно. В основном это должно быть, потому что Котлин вставляет метод и при этом добавляет несколько строк в классе (4) ?.

Так пример, чем прежде, вероятно, выглядит примерно так:

val b = someThingComplex()
        .apply { 
        Timber.d($prefix->${toString()})
        }

Альтернатива этот метод, где Котлин не добавляет дополнительные строки:

inline fun Any.log(s:String=)= Timber.d(s+this)

Есть ли способ, что я мог заставить Котлин просто рядный его именно так, как я написал, а не добавлять переносы строк и прочее? Или есть лучший способ, которым я мог бы определить метод в целом?

Благодарю.

Задан 13/01/2020 в 22:02
источник пользователем
На других языках...                            


1 ответов

голоса
0

Я подозреваю , что перенесение номеров строк может быть связано с вызовом apply. Попробуйте это так.

inline fun <T> T.btwLog(prefix: String = ""): T {
    Timber.d(prefix + "->" + this)
    return this
}
Ответил 13/01/2020 в 23:16
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more