Cześć,
może ktoś wytłumaczyć czym jest NazwaKlasy.class ?
To jest obiekt? Czy jeszcze coś innego ?
NazwaKlasy.class
to literał (element składni języka), który wskazuje na obiekt typu Class<NazwaKlasy>
. Różni się tym od nazwaKlasy.getClass()
, że można go użyć z typem prymitywnym np. int.class
będzie poprawne (przy czym zwróci Class<Integer>
).

- Rejestracja:prawie 20 lat
- Ostatnio:około 9 godzin
.class
to taka statyczna wersja .getClass()
.
.class
wymaga podania namiaru na konkretną klasę, ale nie musimy mieć instancji tej klasy.
.getClass()
musi być wywołana na konkretnym obiekcie, ale nie musimy wiedzieć jakiej klasy jest ten obiekt przed wywołaniem .getClass()
- w zasadzie to ta metoda jest właśnie po to, by dowiedzieć się z jakiej klasy obiektem mamy do czynienia.
Jak wspomniał Koziołek, int
jest typem prymitywnym, a więc nie da się stworzyć obiektu jego typu i wywołać na nim .getClass()
. Zostaje nam więc tylko i wyłącznie int.class
.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.