DejaVu Temat założony przez niniejszego użytkownika |
[Java] Przekazywanie typów podstawowych przez referencję » 2013-01-07 12:30:21 Czy istnieje możliwość przekazywania typów podstawowych przez referencję w jakiś trywialny sposób, tj. bez konieczności opakowywania go w klasę? Integer x = new Integer(1); Integer y = x; y = 3; System.out.println(x);
W powyższym przypadku gdyby 'y' było traktowane jako referencja to wówczas otrzymałbym na ekranie wartość 3, a nie 1... |
|
m4tx |
» 2013-01-07 17:02:55 Hm, a że tak zapytam... Po co Ci to? :) |
|
DejaVu Temat założony przez niniejszego użytkownika |
» 2013-01-07 17:05:57 np. w celu zwrócenia wartości przez referencję? |
|
m4tx |
» 2013-01-07 17:18:31 No rozumiem, ale w Javie się tego nie używa. Użyj return i tyle :) Z tego co wiem, to się tak po prostu nie da. Możesz ew. przekazać tę zmienną w tablicy, lub - jak wspomniałeś - opakować w klasę, ale... nie polecam. To nie C++ :P |
|
DejaVu Temat założony przez niniejszego użytkownika |
» 2013-01-07 17:22:41 No rozumiem, ale w Javie się tego nie używa.
|
Nie używa bo się nie da, a nie używa się bo są lepsze rozwiązania to zasadnicza różnica. Poczytałem trochę w necie i faktycznie ponoć się nie da przekazywać typów podstawowych przez referencję. Jedyną drogą jest opakowanie typu podstawowego w klasę. No ale dlaczego nie ma w standardzie typów podstawowych, które można przekazywać przez referencję (a może są, tylko o nich prawie nikt nie wie)? Tak na logikę powinny być, bo bez tego już na dzień dobry stwarza wrażenie wybrakowanego języka programowania... /edit: W każdym razie z tego wynika, że nie da się stworzyć zmiennej na stosie i przekazywać ją przez referencję. Można mieć albo zmienną typu podstawowego na stosie, albo zmienną typu podstawowego opakowaną w klasę, alokowaną na stercie. |
|
m4tx |
» 2013-01-07 17:33:47 na dzień dobry stwarza wrażenie wybrakowanego języka programowania... |
Oj, Java jest w wielu kwestiach bardziej wybrakowana niż C++; wielu znacznie bardziej denerwujących kwestiach. Ale do każdego języka można się przyzwyczaić... Jeśli tak bardzo Ci brakuje tego ficzera, to... z tego co wiem, to nikt Ci nie każe Javy używać... :) Jak już mówiłem - żadne proste, a zarazem eleganckie rozwiązanie nie jest mi znane i prawdopodobnie nie istnieje. I ja bym raczej unikał tego jak ognia, bo od zwracania wartości służy return , a nie argumenty funkcji... Ja wiem, że przyzwyczajenia robią swoje, ale to jest jednak inny język i inne mechanizmy... |
|
DejaVu Temat założony przez niniejszego użytkownika |
» 2013-01-07 17:41:07 Tak, ale czasami przydaje się zwrócić true/false za pomocą metody i dostać dodatkową informację przez referencję. |
|
jsc |
» 2013-01-07 17:48:27 No to trzeba się ratować obiektami... |
|
« 1 » 2 |