![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Santa777 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2009 Репутация: нет Всего: нет |
Здравствуйте,
Перерыл интернет, но так до конца и нет понял можно ли все таки в Java передать в фукнцию указатель на простую переменную. В C++ это выглядело бы так:
Класс объявлен, чтобы показать, что переменная уже существует как просто переменная внутри класса. Ее нельзя хитро объявить саму по себе. Знатоки, подскажите, пожалуйста, как это может выглядеть в Java? |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Насколько я знаю, такой возможности нет. В таких случаях в Java используются обертки примитивных типов.
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В данном случае, скорее MutableInt, потому как стандартная обертка immutable.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Хм. Я был уверен, что для классов-оберток предпочтительна именно immutable-форма. В таком случае ссылка из класса-обертки на фактическое значение потенциально неспособна стать ссылкой из старого поколения в новое, усложнив работу сборщику мусора. Или я не прав?
Вопрос снят. что-то я тормознул, с immutable действительно ничего не выйдет Это сообщение отредактировал(а) jk1 - 24.12.2009, 09:50 -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| Santa777 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2009 Репутация: нет Всего: нет |
Там именно что все уже определено - int и все.
Как понял, прав jk1, с примитивными типами такого нельзя. Спасибо! Подумал на эту тему: вот изначально вопрос возник из-за того, что мне надо было поменять значения 5-ти переменных подряд т.е.: a = 1; b = 2; int xchg; xchg = a; a = b; b = xchg; И так 5 раз. Неужели в Java для таких случаев ничего не предусмотрено? Это сообщение отредактировал(а) Santa777 - 23.12.2009, 16:17 |
|||
|
||||
| serger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 1 Всего: 5 |
Насколько помню, эти тонкости разобраны в книге Эккеля "Философия Java". Достать её не трудно.
Добавлено через 1 минуту и 4 секунды Нет, а что бы хотелось? -------------------- упс! |
|||
|
||||
| Santa777 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.12.2009 Репутация: нет Всего: нет |
Чего-нибудь типа C-шного же #define: #define xchg(a, b) {int xchg; xchg = a; a = b; b = xchg;} Просто, так сказать, и сердито. Или они есть где-нибудь? Это сообщение отредактировал(а) Santa777 - 23.12.2009, 17:00 |
|||
|
||||
| Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 6 Всего: 10 |
В Java нет указателей на типы-значения. Только ссылки на объекты.
Поэтому либо использовать обертки, либо
то есть создание аналога структуры и работа с ней.
В Java нет препроцессора. И много чего нет, что есть в С++, перечислять утомительно. Лучше прочтите какую-нить книгу по Java. Рекомендую "Философия Java" Б. Эккеля Это сообщение отредактировал(а) Skynin - 23.12.2009, 17:11 |
||||
|
|||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Хотелось бы на всех иностранных языках говорить русскими фразами. И только слова подставлять из соответствующего словаря. И чтобы понимали. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Приведённые обертки не изменяют поле класса, поэтому не годятся. Нужно что-то вроде этого:
|
|||
|
||||
| serger |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 1 Всего: 5 |
Тогда уж проще :
Посмотрите groovy. http://groovy.codehaus.org/Statements Это сообщение отредактировал(а) serger - 24.12.2009, 14:37 -------------------- упс! |
||||
|
|||||
| Zefick |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 3.12.2009 Репутация: 1 Всего: 2 |
Странно, что ещё никто не предложил оборачивать переменную в массив, а ведь это часто используется.
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
||||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А поле класса объявить как MutableInt, не? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
||||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |