2015-09-29 1 views
5

Serait-il considéré comme aggravant la lisibilité future du code si je les utilisais dans le code? Par exemple en utilisant:Utilisation des importations statiques et de la qualité de la lisibilité du code?

import static java.lang.Integer.*; 

donc je peux utiliser ce code

int a = parseInt(scanner.nextLine()); 
+11

Attention! Cela peut être utile pour 'parseInt' mais pas pour' valueOf', 'toString',' min' ou 'max' (car il y a des tonnes de méthodes avec ces noms). Idem pour les constantes 'SIZE',' MIN_VALUE' et 'MAX_VALUE'. Par conséquent, vous ne devez pas importer '*' mais plutôt 'importer static java.lang.Integer.parseInt;'. – Holger

Répondre

3

quand utiliser l'importation statique? Très peu! Utilisez uniquement quand vous auriez autrement tenté de déclarer des copies locales des constantes, ou d'abuser l'héritage (la AntiModèle Interface constante)

Pour votre cas Importation tous les membres statiques d'une classe peut être particulièrement néfaste à la lisibilité; Si vous n'avez besoin que d'un ou deux membres, importez-les individuellement.

Link for more detail

+1

La partie postérieure dit aussi "Utilisé de manière appropriée, l'importation statique peut rendre votre programme plus lisible, en supprimant le passe-partout de la répétition des noms de classe." Donc, fondamentalement, le cas d'une importation que je veux pour l'analyse des nombres entiers qualifie d'amélioration, n'est-ce pas? Bien sûr, importer quelque chose comme 'System' et ensuite utiliser seulement' out.printf' serait une mauvaise idée et confuse. –

+0

Holger a ajouté le commentaire –

0

La seule fois où je pense qu'il est approprié d'utiliser import static est lorsque vous utilisez beaucoup de Assert.assertXXX(...) lorsque vous faites des tests (avec JUnit, TestNG, etc.).

Chaque fois que je me suis surpris à appeler beaucoup de fonctions statiques dans une petite quantité de code, je ferais mieux de refactoriser pour améliorer la lisibilité (au lieu de faire un import static).