2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
||||||
1 | ||||||
Инкремент переменной в рекурсии17.11.2016, 10:24. Показов 1355. Ответов 9
Метки нет (Все метки)
Здравствуйте форумчане, что то не приходит идея как сделать в рекурсивном методе переменную, чтобы на следующем входе в функцию она не сбрасывала свое значение. Ведь в Java переменные, объявленные внутри метода должны иметь начальное значение. Так же у меня нет возможности выносить эту переменную в поле класса. Есть вариант как поступить ?
0
|
17.11.2016, 10:24 | |
Ответы с готовыми решениями:
9
Инкремент в рекурсии Инкремент переменной Инкремент переменной Инкремент значения переменной |
17.11.2016, 10:27 | 2 |
Вам нужно задуматься об изменении архитектуры. А именно, нужно ли вам иметь эту переменную именно в методе.
1
|
370 / 133 / 44
Регистрация: 05.02.2015
Сообщений: 897
|
||||||
17.11.2016, 10:43 | 3 | |||||
ну передавайте ее вторым параметром в вашу функцию, и при рекурсивном вызове вызывайте функцию как: (i +1). ну а внутри метода можете ее копировать:
1
|
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
|
||||||
17.11.2016, 10:47 | 4 | |||||
Willyams, может быть вам нужно что-то вроде этого?
0
|
17.11.2016, 10:56 | 5 |
Для начала нужно узнать вообще с чем имеем дело. Увидеть код, или хотя бы узнать что он вообще делает и какой физический смысл у обозначенной переменной.
0
|
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
||||||
17.11.2016, 11:07 [ТС] | 6 | |||||
К сожалению код я не могу показать, могу прибегнуть только к абстракции.Мне нужно узнать уровень вложенности объекта. У объекта может быть родитель, если родитель есть мы входим в рекурсию и инкрементим переменную. Пока что для теста я прибегнул к методу, который посоветовал minore, хотелось бы как то украсить сущесвующий код, но по ходу тут я встаю в тупик.
Проблема встает в уродливом коде вызова
0
|
17.11.2016, 11:16 | 7 |
Что это значит?
И это поподробнее. Попробуйте я не знаю схематично как-то описать.
0
|
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
|
17.11.2016, 11:36 [ТС] | 8 |
Проблема стоит в том, что объекты на одном уровне не могу иметь одинаковых имен. Это не касается сейчас наследования. Просто объект child создается и получает какие-то свойства от родителя. Мне нужно запретить создание объектов на одном уровне с одинаковыми именами. К примеру есть корневой объект "qwe", у него мы создаем под-объект "qwe"/"qwe1" и мне нужно провалидировать создание нового объекта с именем либо "qwe", либо если у нас уже есть рутовый объект и у него мы создаем "newRoot/qwe1" - это должно спровоцировать ошибку.
Добавлено через 13 минут Дискуссию можно прекратить, придется использовать другой подход здесь.
0
|
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
|
||||||
17.11.2016, 13:24 | 9 | |||||
Willyams, смотрите, я бы сделал так: в классе делаете поля "предок" и Map"наследники". Делаете приватный конструктор, чтобы было невозможно прямое создание объектов.
Делаете статический объект, который будет предок всем "корневым объектам", в него добавляете объекты статическим методом. В свою очередь каждый объект-потомок создается также, только уже не статическим методом. Ну и конечно модификаторы доступа для полей делайте private, тут мне лень было)) Кликните здесь для просмотра всего текста
1
|
2 / 2 / 5
Регистрация: 28.06.2015
Сообщений: 81
|
|
17.11.2016, 16:03 [ТС] | 10 |
RedPatrick, спасибо за ваше потраченное время.
0
|
17.11.2016, 16:03 | |
17.11.2016, 16:03 | |
Помогаю со студенческими работами здесь
10
Инкремент переменной префаба Странно работает инкремент переменной Некоректный инкремент переменной цикла for при сравнении элементов массива Инкремент переменной между потоками без atomic, с использованием mutex Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |