Quanto è importante convertire tutte le importazioni in static import
? Perché le persone sono ancora riluttanti a utilizzare static import
?Devo usare l'importazione statica?
risposta
Direi, non utilizzare mai le importazioni statiche con caratteri jolly.
Senza caratteri jolly, in base alle esigenze, penso che riduca il disordine.
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.
+1 visto che nel mio codice abbastanza spesso :-) –
Io uso un static import
solo nelle situazioni più evidenti. Ricorda: il codice conciso non è sempre la stessa cosa del codice leggibile.
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.
L'uso di static import
è preferibile se si utilizza un IDE.
Per quale motivo @fastcodejava? –
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 ...
- 1. Devo usare Bootstrap?
- 2. Devo usare jQuery.each()?
- 3. Quale CursorAdapter devo usare?
- 4. Devo usare chiavi esterne?
- 5. Perché devo usare [ProtoInclude]?
- 6. Devo usare jQuery.inArray()?
- 7. Devo usare un framework?
- 8. Devo usare HttpRuntime.Cache?
- 9. Devo usare ProGuard?
- 10. C# classe statica perché usare?
- 11. Devo usare System.out.println() o qualcos'altro?
- 12. Devo usare Angular.copy() o _.clone()?
- 13. Devo usare rand() o rand_s()?
- 14. Devo usare FxCop e perché?
- 15. Devo usare typeclass o no?
- 16. Devo usare nav o ul
- 17. Devo usare Point.x o Point.getX()?
- 18. Devo usare Meteor.startup() o $ (function() {})
- 19. Devo usare EC2 con DynamoDB?
- 20. Devo usare alias o alias_method?
- 21. Devo usare em o px?
- 22. Quando devo usare i quaternioni?
- 23. Devo usare Pickle o cPickle?
- 24. Devo usare promessa per mkdir
- 25. Devo usare MapView o MapFragment
- 26. Devo usare mysql persistent connect?
- 27. Devo usare @EJB o @Inject
- 28. Devo usare std :: default_random_engine o dovrei usare std :: mt19937?
- 29. Quando devo usare dispose() nella grafica?
- 30. Devo usare Drupal 6 o Drupal 7?
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