Я действительно восхищаюсь возможностями Java и не хочу отказываться от использования его для решения следующей проблемы:
У меня есть класс, который может быть унаследован, и внутри него есть private ArrayList arr;
Так чтоФункция setter в порядке, но функция getter return arr;
возвращает ссылку на ту переменную, которую любой, способный редактировать весь массив, который я не хочу и приватный, не будет иметь никакого смысла!
В C ++ Iпросто return const arr;
, и он будет возвращать постоянную ссылку на переменную.
Мне так нужно, чтобы переменная не была клонирована или скопирована вручную, потому что существует так много вычислений, которые требуют (ЧИТАТЬ ТОЛЬКО переменную) ПОЧЕМУнет возврата const в java ????есть ли способ избежать копирования?
ps (final ArrayList<Integer> arr;)
не вариант, поскольку массив всегда меняет размер или значения элемента.
Если я не смог найти исправления для этогоЯ угрожаю вернуться на C ++ или обнародовать все, и вы никогда не должны получать мое программное обеспечение: D
РЕДАКТИРОВАТЬ: еще один важный вопрос: я спрашиваю что-то нехорошее (мудрое программированиеЯ имею в виду, что если создатели JAVA думали о том, что у них нет константной ссылки (возвращающей ссылки только для чтения), то я должен просить что-то, что может быть обработано другим способом.или мой дизайн программы неправильный, я так запутался.