AClass.class.getName ();
si AClass est une classe Java, cette méthode renverra le nom du package et le nom de la classe . mais lorsque je convertis un fichier Java AClass en fichier Kotlin, elle ne renverra qu'un nom de classe. si le système ne peut pas trouver ce chemin de classe
le code ci-dessus
il existe de nombreuses façons d'obtenir le nom qualifié complet d'une variable Java Class
dans kotlin:
obtenir le nom via la propriété KClass.qualifiedName
:
val name = AClass::class.qualifiedName;
OUobtenir le nom via la propriété Class.name
:
val name = AClass::class.Java.name;
OUget nom via la méthode Class#getName
:
val name = AClass::class.Java.getName();
la table du nom qualifié d'une classe comme ci-dessous:
|-----------------------|-----------------------|-----------------------|
| | Class | Anonymous Class |
|-----------------------|-----------------------|-----------------------|
| KClass.qualifiedName | foo.bar.AClass | null |
|-----------------------|-----------------------|-----------------------|
| Class.name | foo.bar.AClass | foo.bar.AClass$1 |
|-----------------------|-----------------------|-----------------------|
| Class.getName() | foo.bar.AClass | foo.bar.AClass$1 |
|-----------------------|-----------------------|-----------------------|
Essayez la solution ci-dessous :: -
var name = MainActivity::class.Java.canonicalName as String
S'il s'agit d'un fragment Java
var fragmentSimpleName = NomFragment :: class.Java.simpleName en tant que chaîne
Je suis peut-être un peu en retard pour la fête, mais je le fais en utilisant le code de hachage de la nouvelle instance du fragment. C'est un Int permet donc toutes sortes de tests.
private val areaFragment by lazy { Area_Fragment.newInstance() }
var fragmentHashCode = fragment.hashCode()
when (fragmentHashCode) {
areaFragment.hashCode() -> {
myNavigationView.setCheckedItem(R.id.nav_area)
}