Czym jest NazwaKlasy.class ?

0

Cześć,
może ktoś wytłumaczyć czym jest NazwaKlasy.class ?
To jest obiekt? Czy jeszcze coś innego ?

0

.Class to jest obiekt reprezentujący klasę w czasie działania programu. Plus jak wywołujesz ''NazwaKlasy.getClass()" to właśnie on jest zwrócony.

2

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>).

1

.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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1