2010-05-07 28 views
17

Quanto è importante convertire tutte le importazioni in static import? Perché le persone sono ancora riluttanti a utilizzare static import?Devo usare l'importazione statica?

+0

possibile duplicato di [Che cosa è un buon caso d'uso per l'importazione statica dei metodi?] (Http://stackoverflow.com/questions/420791/what-is-a -buon-use-case-for-static-import-of-methods) – Ingo

risposta

15

Come dicono i documenti, utilizzarlo sparingly. Guarda lì per le giustificazioni.

+4

Buona risposta, mai pensato di verificare la fonte! – javaguy

0

Direi, non utilizzare mai le importazioni statiche con caratteri jolly.

Senza caratteri jolly, in base alle esigenze, penso che riduca il disordine.

8

Questo è un caso speciale, ma anche il caso d'uso perfetto (e lo uso in tutte le mie prove):

import static junit.framework.Assert.*; 

Qui, trovo che questo rende il mio test più leggibile ed è ovvio da dove assertXXX vieni da Ma questa è un'eccezione. In altre situazioni, trovo che l'importazione statica rende le cose più oscure, più difficili da leggere e in realtà non le uso.

+0

+1 visto che nel mio codice abbastanza spesso :-) –

1

Io uso un static import solo nelle situazioni più evidenti. Ricorda: il codice conciso non è sempre la stessa cosa del codice leggibile.

3

Io uso l'importazione statica quando si lavora con assert di JUnit (import static org.junit.Assert.*;) ed anche quando ho un enum che è molto legato alla classe in questione.

Ad esempio:

file di Enum:

public enum MyEnum { 
    A, B, C; 
} 

file di classe:

import static MyEnum.*; 

public class MyClass { 
    MyEnum e; 

    public setE(MyEnum newE) { 
    if (newE == A) { 
     // some verification 
    } 
    e = newE; 
    } 
} 

Si noti come sono stato in grado di fare newE == A, invece di newE == MyEnum.A. È utile se ne fai un sacco in tutto il codice.

0

L'uso di static import è preferibile se si utilizza un IDE.

+1

Per quale motivo @fastcodejava? –

0

Non è affatto importante convertire codice di lavoro esistente, in realtà è solo un costo e un rischio inutili.

Si può considerare l'utilizzo per il codice nuovo, se è possibile trovare un uso convincente per questo. Non l'ho ancora fatto, ma potrei ...