Opakowanie typów prostych

0

Bardzo często występuje potrzeba traktowania liczb jako obiektów.
Możemy np. zechcieć utworzyć tablicę, która zawiera i liczby i napisy. Wiemy, że można utworzyć tablicę dowolnych obiektów np.:

Object[] arr = new Object[3];

Ale liczby są reprezentowane przez typy proste (i nie są obiektami).

Zatem kompilator nie zgodzi się na wstawienie do niej elementu typu prostego np. taka konstrukcja będzie niedopuszczalna.
Object[] arr = { "ala", 3, "asia", 5 };

Tymczasem tak robię i wszystko śmiga, mogę normalnie odwoływać się do pozycji na których stoją liczby. Zgaduję, że te informacje są po prostu nie aktualne, rzuci ktoś jakieś światło na to?

3

Skąd to masz?
Jak dla mnie przykład mylący.

Z krótkiego rozeznania w google, Object[] nie może przechowywać typów prostych takich jak int, ale może przechować Integera. Zajdzie autoboxing i nie ma powodu, żeby nie dało się utworzyć takiej tablicy jak w przykładzie.

3

Teraz jest coś takiego jak auto-boxing i auto-unboxing. Zmienna jest ubierana w obiekt i rozbierana do typu prostego kiedy trzeba.

EDIT: Ja to zawsze wolniejszy niż pół świata :/

0

dzięki, chodziło o autoboxing : )

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