Przy takim użyciu:
import static com.showboy.Myclass;
public class Anotherclass{}
Jaka jest różnica między import static com.showboy.Myclass
i import com.showboy.Myclass
?
źródło
Przy takim użyciu:
import static com.showboy.Myclass;
public class Anotherclass{}
Jaka jest różnica między import static com.showboy.Myclass
i import com.showboy.Myclass
?
Zobacz dokumentację
Statyczna deklaracja importowa jest analogiczna do zwykłej deklaracji importowej. W przypadku gdy normalna deklaracja importowa importuje klasy z paczek, umożliwiając ich stosowanie bez kwalifikacji paczki, statyczna deklaracja importowa importuje statyczne elementy z klas, umożliwiając ich stosowanie bez kwalifikacji klasy.
Kiedy więc należy użyć importu statycznego? Bardzo oszczędnie! Używaj go tylko wtedy, gdy masz ochotę zadeklarować lokalne kopie stałych lub nadużyć dziedziczenia (Antipattern interfejsu stałego). Innymi słowy, używaj go, gdy potrzebujesz częstego dostępu do elementów statycznych z jednej lub dwóch klas. Jeśli nadużyjesz funkcji importowania statycznego, może to spowodować, że Twój program będzie nieczytelny i niemożliwy do utrzymania, zanieczyszczając jego przestrzeń nazw wszystkimi importowanymi elementami statycznymi. Czytelnicy twojego kodu (w tym ciebie, kilka miesięcy po napisaniu go) nie będą wiedzieć, z której klasy pochodzi element statyczny. Importowanie wszystkich elementów statycznych z klasy może być szczególnie szkodliwe dla czytelności; jeśli potrzebujesz tylko jednego lub dwóch członków, zaimportuj ich indywidualnie. Odpowiednio użyte importowanie statyczne może uczynić twój program bardziej czytelnym,
include
w Ruby!Nie ma różnicy między tymi dwoma importami, które podajesz. Możesz jednak użyć importu statycznego, aby zezwolić na nieograniczony dostęp do statycznych elementów innych klas. Gdzie kiedyś musiałem to robić:
Mogę to zrobić:
Możesz zobaczyć więcej w dokumentacji .
źródło
Import statyczny służy do importowania pól statycznych / metody klasy zamiast:
Możesz pisać :
Jest to przydatne, jeśli często używasz stałej z innej klasy w kodzie i jeśli import statyczny nie jest niejednoznaczny.
Btw, w twoim przykładzie „import static org.example.Myclass;” nie działa: import jest dla klasy, import statyczny jest dla statycznych członków klasy.
źródło
Podstawową ideą importu statycznego jest to, że za każdym razem, gdy używasz klasy statycznej, zmiennej statycznej lub wyliczenia, możesz je zaimportować i uchronić się przed wpisaniem.
Omówię tę kwestię przykładem.
Ten sam kod ze statycznym importem:
Uwaga : import statyczny może powodować, że kod może być mylący z czytaniem.
źródło
import static java.lang.Math
bez gwiazdki oznaczałoby cokolwiek ?Pierwszy powinien wygenerować błąd kompilatora, ponieważ import statyczny działa tylko w przypadku importowania pól lub typów elementów. (zakładając, że MyClass nie jest wewnętrzną klasą ani członkiem showboya)
Myślę, że miałeś na myśli
która udostępnia wszystkie pola statyczne i elementy z MyClass w rzeczywistej jednostce kompilacji bez konieczności ich kwalifikowania ... jak wyjaśniono powyżej
źródło
import
Pozwala programiście Java klas dostępowych z pakietem bez pakietu kwalifikacji.Ta
static import
funkcja umożliwia dostęp do statycznych elementów klasy bez kwalifikacji klasy.import
Zapewnia dostęp do klas i interfejs natomiaststatic import
zapewnia dostęp do statycznych członków klasy.Przykład:
Z importem
Ze statycznym importem
Zobacz także: Co to jest import statyczny w Javie 5
źródło
Załóżmy, że masz pola statyczne i metody wewnątrz klasy o nazwie
MyClass
wewnątrz pakietu o nazwiemyPackage
i chcesz uzyskać do nich bezpośredni dostęp, wpisującmyStaticField
lubmyStaticMethod
bez wpisywania za każdym razemMyClass.myStaticField
lubMyClass.myStaticMethod
.Uwaga: musisz zrobić
import myPackage.MyClass
lub,myPackage.*
aby uzyskać dostęp do innych zasobówźródło
The
static
Modyfikator poimport
to do pobierania / używanie statycznych pól klasy. Jednym z obszarów, w których używam,import static
jest pobieranie stałych z klasy. Możemy również stosowaćimport static
metody statyczne. Upewnij się, że wpisałeś,import static
ponieważstatic import
jest niepoprawny.Co jest
static import
w Javie - JavaRevisited - Bardzo dobry zasób, aby dowiedzieć się więcejimport static
.źródło