Comment vérifier la classe "instanceof" dans kotlin?
Dans la classe kotlin, j'ai un paramètre de méthode comme objet (voir Kotlin doc ici) pour le type de classe T . En tant qu'objet, je passe différentes classes quand j'appelle la méthode.
En Java, nous pouvons comparer la classe en utilisant instanceof
de l'objet de quelle classe il s'agit.
Donc je veux vérifier et comparer à l'exécution quelle classe c'est?
Comment puis-je vérifier la classe instanceof dans kotlin?
5 réponses
Utilisez is
.
if (myInstance is String) { ... }
, Ou l'inverse !is
if (myInstance !is String) { ... }
Nous pouvons vérifier si un objet est conforme à un type donné à l'exécution en utilisant l'opérateur is
ou sa forme niée !is
.
Exemple:
if (obj is String) {
print(obj.length)
}
if (obj !is String) {
print("Not a String")
}
Un autre exemple dans le cas D'un objet personnalisé:
Laisser, j'ai un obj
de type CustomObject
.
if (obj is CustomObject) {
print("obj is of type CustomObject")
}
if (obj !is CustomObject) {
print("obj is not of type CustomObject")
}
Vous pouvez utiliser is
:
class B
val a: A = A()
if (a is A) { /* do something */ }
when (a) {
someValue -> { /* do something */ }
is B -> { /* do something */ }
else -> { /* do something */ }
}
Essayez d'utiliser le mot clé appelé is
référence officielle de la page
if (obj is String) {
// obj is a String
}
if (obj !is String) {
// // obj is not a String
}
Combinaison de when
et is
:
when (x) {
is Int -> print(x + 1)
is String -> print(x.length + 1)
is IntArray -> print(x.sum())
}
Copié de documentation officielle