J'ai une classe de forme avec une méthode:De quel type devrais-je me servir?
IText getSearchField()
L'interface IText
est quelque chose mis en œuvre par une sous-classe de JTextField
appelé MyTextField
.
Pour des raisons indépendantes de ma volonté, je ne peux pas obtenir le contrôle de la classe sous forme typée comme MyTextField
, comme JTextField
, Component
, ou toute autre chose dans la hiérarchie de type MyTextField
.
J'accède à l'objet de classe de formulaire à partir d'un objet de pilote et souhaite que le pilote définisse le focus sur le champ de recherche récupéré par l'appel.
Je pourrais utiliser la méthode requestFocusInWindow()
de la classe Component
pour ce faire. Cependant, d'abord je devrais lancer le résultat de l'appel getSearchField()
à quelque chose dans la hiérarchie de type MyTextField
, puisque l'appel à getSearchField()
renvoie un IText
.
Ma question est, devrais-je lancer le cast MyTextField
? à Component
? à quelque chose entre?
Pourquoi? Et qui serait le plus rapide?
Est-ce que cela signifie que la coulée se produit toujours à la même vitesse, quel que soit le type de lancer? –
L'impact sur les performances de tout plâtre sera négligeable. – Sjoerd
Eh bien, les moulages sont étonnamment chers parce que la JVM doit vérifier au moment de l'exécution que la distribution est en effet légale. Mais je serais très surpris s'il y avait une différence significative dans le temps d'exécution en fonction de ce que vous avez lancé. Ce serait amusant de comparer. Dans tous les cas, la maintenabilité est plus importante qu'un gain de performance mineur, même s'il y en a un. – Jay