![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| bulat01 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 26.10.2010 Репутация: нет Всего: 0 |
здравствуйте все,
помогите разобраться, вот фрагмент кода
внутри метода passVariablesValidStat - значения .trueCount1 и falseCount1 видны. а внутри метода nextToDataProcessing - значения .trueCount1 и falseCount1 показывают null. Не понимаю почему. Подскажите как решить эту проблему. |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
может, они и в методе passVariablesValidStat не видны. Попробуй написать в этом методе
System.out.println(this.trueCount1); System.out.println(this.falseCount1); -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| bulat01 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 26.10.2010 Репутация: нет Всего: 0 |
нет - они в методе passVariablesValidStat видны.
Это сообщение отредактировал(а) bulat01 - 21.10.2011, 16:45 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Данных явно недостаточно. Что делает proc.getDataCollection2(this);? В какой момент вызываются оба этих метода?
-------------------- 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. |
|||
|
||||
| bulat01 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 26.10.2010 Репутация: нет Всего: 0 |
метод nextToDataProcessing (в классе DataCollection2 ) вызывается при нажатии кнопки Next.
этот метод передает определенные параметры (включая параметры из метода passVariablesValidStat ) следующей форме-классу DataProcessing . метод nextToDataProcessing также запускает метод readValidStatus находящийся в классе DataValidation (этот метод вычисляет количество ячеек с TRUE или FALSE - чтение из csv файла а затем передает значения обратно через метод passVariablesValidStat в класс DataCollection2) Если я где то ошибся - пож-та укажите. Просто недостаточно знаний и опыта в программировании java. |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Согласен с LSD.
Ты передаешь куда-то объект класса DataCollection2 методом proc.getDataCollection2(this); в этом где-то может что-то делаться с объектными переменными (в д. с. trueCount1 и falseCount1)... короче, -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Скорее всего, не учитывется, что в Java параметры, в том числе String, передаются по значению.
Непонятно, зачем счётчики хранить в виде String - это не позволит изменить значения полей. Чтобы можно было изменять значения счётчиков можно, например определить интерфейс:
|
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
String – по ссылке. Но он final.
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Нет, всё - по значению. Но для классов передаётся по значению указатель. Через него можно изменить объект, на который он указаывает, но не сам указатель - после присвоению параметру нового значения он становится обычной локальной переменной. Кроме String нельзя изменить также объекты типа Boolean, Integer, Double и т.д. |
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Object references are passed by value.
Это сообщение отредактировал(а) dobrolub - 22.10.2011, 00:03 |
|||
|
||||
| ИванИванович |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.10.2011 Репутация: нет Всего: нет |
Нельзя - это пожалуй слишком сильное слово т.к. если очень хочется изменить, то можно. Но переопределить нельзя. A значит, если proc.getParameters это функция которая пытается инициализиривать trueCount1 и falseCount1, то у нее ничего не получится
Забавно, то что Java называет references , на самом деле pointers В JLS они так и пишут: The reference values (often just references) are pointers to these objects. Т.е.
абсолютно верно |
||||||
|
|||||||
![]()
|
| Правила форума "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. |