$-6ren">
gpt4 book ai didi

android - Kotlin:强制内联方法以保留定义的行数

转载 作者:行者123 更新时间:2023-12-02 12:57:21 24 4
gpt4 key购买 nike

所以我有这个方法,我想用它来进行日志记录,同时还返回记录的对象:

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

Timber 类来自日志记录库,并且(当以这种方式设置时)显示调用它的行,这也是该方法是内联的原因(以显示调用它的行和正确的类)例如:

val b = someThingComplex().btwLog()

这基本上可以了,唯一的问题是行号不对。这基本上是因为 Kotlin 插入了方法,同时在类 (4)? 中添加了一些行。

因此之前的示例可能与此类似:

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

另一种方法是 Kotlin 不添加额外行的方法:

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

有什么方法可以强制 Kotlin 完全按照我编写的方式内联它,而不添加换行符和其他内容?还是有更好的方法来定义一般方法?

谢谢。

最佳答案

我怀疑行号的移动可能是由于调用了 apply。以这种方式尝试。

inline fun <T> T.btwLog(prefix: String = ""): T {
Timber.d(prefix + "->" + this)
return this
}

关于android - Kotlin:强制内联方法以保留定义的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59724103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com