我試圖靜態獲取對象的名稱(記錄使用)Kotlin - 與SomeClass.class對象等價嗎?
的等價性:
public class SomeClass
{
private static final String TAG = SomeClass.class.getSimpleName()
}
在科特林:
object SomeObject
{
private const val TAG = ?
}
我試圖靜態獲取對象的名稱(記錄使用)Kotlin - 與SomeClass.class對象等價嗎?
的等價性:
public class SomeClass
{
private static final String TAG = SomeClass.class.getSimpleName()
}
在科特林:
object SomeObject
{
private const val TAG = ?
}
試試這個
SomeClass::class.simpleName
怎麼樣kotlin.jvm.KotlinReflectionNotSupportedError?需要額外的依賴kotlin-reflect.jar。也許會更好地使用:: class.java.simpleName – user1221256
如果您在Android應用程序中使用它,我建議您按照以下方式進行操作ng:(packageName:className)
object SomeObject
{
private val TAG = "${SomeObject::class.java.`package`.name}:${SomeObject::class.simpleName}"
}
這樣做可以確保任何其他類的標記名不會重複。 如果您正在創建某人可以使用的lib /代碼片段,這非常有幫助。否則具有相同的標籤名稱可能會導致運行時錯誤。
您可以使用'class.name'來獲取完全限定的名稱。 –
如果。在不同的包中,有一個同名的類在那裏? – chandil03
這將是'Clz :: class.java.simpleName'。請參閱官方參考http://kotlinlang.org/docs/reference/reflection.html#class-references和SO在https://stackoverflow.com/questions/34340450/how-to-get-a-kotlin-kclass- from-a-package-class-name-string –