2015-09-29 15 views
5

Si considererebbe un peggioramento della leggibilità futura del codice se li ho usati in tutto il codice? Ad esempio, utilizzando:Utilizzo di importazioni statiche e qualità della leggibilità del codice?

import static java.lang.Integer.*; 

modo da poter utilizzare questo codice

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

Attenzione. Potrebbe essere utile per 'parseInt' ma non per' valueOf', 'toString',' min' o 'max' (poiché ci sono tonnellate di metodi con questi nomi). Lo stesso vale per le costanti 'SIZE',' MIN_VALUE' e 'MAX_VALUE'. Quindi, non dovresti importare '*' ma piuttosto 'import static java.lang.Integer.parseInt; '. – Holger

risposta

3

quando si dovrebbe utilizzare l'importazione statica? Molto parsimonioso! Utilizzare solo quando si sarebbe altrimenti essere tentati di dichiarare copie locali delle costanti, o per abuso di successione (la costante interfaccia antipattern)

Per il vostro caso Importazione di tutti i membri statici di una classe può essere particolarmente dannoso alla leggibilità; se è necessario solo uno o due membri, importarli singolarmente.

Link for more detail

+1

La parte successiva dice anche "Usato in modo appropriato, l'importazione statica può rendere più leggibile il tuo programma, rimuovendo lo schema di ripetizione dei nomi delle classi." quindi, in pratica, il caso di un'importazione che voglio analizzare gli interi si qualifica come miglioramento, no? Ovviamente, importare qualcosa come 'System' e quindi usare solo' out.printf' sarebbe una cattiva idea e confusa. –

+0

Holger ha aggiunto il commento –

0

L'unica volta che penso che sia opportuno utilizzare import static è quando si utilizza un sacco di Assert.assertXXX(...) quando facendo alcuni test (con JUnit, TestNG, etc.).

Ogni volta che mi sono sorpreso a chiamare un sacco di alcune funzioni statiche in una piccola quantità di codice, è meglio che mi rifatti per migliorare la leggibilità (invece di fare un import static).