Cosa significa il modificatore “statico” dopo “import”?

Se usato in questo modo:

import static com.showboy.Myclass; public class Anotherclass{} 

qual è la differenza tra import static com.showboy.Myclass e import com.showboy.Myclass ?

    Vedi documentazione

    La dichiarazione di importazione statica è analoga alla normale dichiarazione di importazione. Quando la normale dichiarazione di importazione importa le classi dai pacchetti, consentendo loro di essere utilizzati senza qualifica del pacchetto, la dichiarazione di importazione statica importa i membri statici dalle classi, consentendo loro di essere utilizzati senza qualifica di class.

    Quindi quando dovresti usare l’importazione statica? Molto parsimonioso! Utilizzalo solo quando altrimenti saresti tentato di dichiarare copie locali di costanti o di abusare dell’ereditarietà (Constant Interface Antipattern). In altre parole, utilizzalo quando richiedi un accesso frequente ai membri statici da una o due classi. Se si abusa la funzionalità di importazione statica, può rendere il programma illeggibile e non gestibile, inquinando il suo spazio dei nomi con tutti i membri statici importati. I lettori del tuo codice (incluso te, pochi mesi dopo averlo scritto) non sapranno da quale class proviene un membro statico. L’importazione di tutti i membri statici di una class può essere particolarmente dannosa per la leggibilità; se è necessario solo uno o due membri, importarli singolarmente. Utilizzato in modo appropriato, l’importazione statica può rendere più leggibile il programma rimuovendo il testo di ripetizione dei nomi delle classi.

    Non c’è differenza tra queste due importazioni che dichiari. Tuttavia, è ansible utilizzare l’importazione statica per consentire l’accesso non qualificato ai membri statici di altre classi. Dove dovevo fare questo:

     import org.apache.commons.lang.StringUtils; . . . if (StringUtils.isBlank(aString)) { . . . 

    Posso farlo:

     import static org.apache.commons.lang.StringUtils.isBlank; . . . if (isBlank(aString)) { . . . 

    L’importazione statica viene utilizzata per importare campi / metodi statici di una class anziché:

     package test; import org.example.Foo; class A { B b = Foo.B_INSTANCE; } 

    Tu puoi scrivere :

     package test; import static org.example.Foo.B_INSTANCE; class A { B b = B_INSTANCE; } 

    È utile se si utilizza spesso una costante di un’altra class nel codice e se l’importazione statica non è ambigua.

    Btw, nell’esempio “import static org.example.Myclass;” non funzionerà: l’importazione è per la class, l’importazione statica è per i membri statici di una class.

    L’idea di base dell’importazione statica è che ogni volta che si utilizza una class statica, una variabile statica o un’enumerazione, è ansible importarli e salvarsi da una digitazione.

    Elaborerò il mio punto con l’esempio.

     import java.lang.Math; class WithoutStaticImports { public static void main(String [] args) { System.out.println("round " + Math.round(1032.897)); System.out.println("min " + Math.min(60,102)); } } 

    Stesso codice, con importazioni statiche:

     import static java.lang.System.out; import static java.lang.Math.*; class WithStaticImports { public static void main(String [] args) { out.println("round " + round(1032.897)); out.println("min " + min(60,102)); } } 

    Nota : l’importazione statica può rendere confuso il codice da leggere.

    la differenza tra “import static com.showboy.Myclass” e “import com.showboy.Myclass”?

    Il primo dovrebbe generare un errore del compilatore poiché l’importazione statica funziona solo per l’importazione di campi o tipi di membri. (presumendo che MyClass non sia una class interiore o un membro dello showboy)

    Penso che tu intendessi

     import static com.showboy.MyClass.*; 

    che rende tutti i campi statici e membri di MyClass disponibili nell’unità di compilazione effettiva senza doverli qualificare … come spiegato sopra

    L’ import consente al programmatore java di accedere alle classi di un pacchetto senza qualifica del pacchetto.

    La funzione di static import consente di accedere ai membri statici di una class senza la qualifica della class.

    L’ import fornisce l’accessibilità alle classi e all’interfaccia mentre l’ static import fornisce l’accessibilità ai membri statici della class.

    Esempio :

    Con importazione

     import java.lang.System.*; class StaticImportExample{ public static void main(String args[]){ System.out.println("Hello"); System.out.println("Java"); } } 

    Con importazione statica

     import static java.lang.System.*; class StaticImportExample{ public static void main(String args[]){ out.println("Hello");//Now no need of System.out out.println("Java"); } } 

    Vedi anche: Cos’è l’importazione statica in Java 5

    Supponiamo che tu abbia campi e metodi statici all’interno di una class chiamata myClass all’interno di un pacchetto chiamato myPackage e desideri accedervi direttamente digitando myStaticField o myStaticMethod senza digitare ogni volta myClass.myStaticField o myClass.myStaticMethod.

    Nota: è necessario eseguire un import myPackage.MyClass o myPackage. * Per accedere alle altre risorse

    Il modificatore static dopo l’ import serve per recuperare / utilizzare i campi statici di una class. Un’area in cui utilizzo l’ import static è per il recupero di costanti da una class. Possiamo anche applicare import static su metodi statici. Assicurati di digitare l’ import static perché l’ static import è errata.

    Che cosa è l’ static import in Java – JavaRevisited – Una risorsa molto buona per sapere di più import static .