То, что вы описываете (создание новых именованных переменных во время выполнения), возможно на интерпретируемых языках, таких как JavaScript, Lua, Bash, но не на скомпилированном языке, таком как Java.Когда цикл выполняется, там нет исходного кода для манипулирования, и все именованные переменные должны быть определены ранее.
Кроме этого, вашим переменным не нужно «уникальное» имя, если выиспользуя их последовательно (один за другим), вы можете написать цикл так же, как этот:
while (someArbitrarySet.hasNext()) {
SomeClass sC = new SomeClass();
sC.callSomeMethod();
}
Если вам действительно нужны ваши объекты одновременно, поместите их в некую структуру данных.Простейшим был бы массив, вы можете использовать Collection (например, ArrayList) или Map (как писал CajunLuke), если вы хотите найти их снова по ключу.
Фактически, массив (в Java) это не что иное, как набор переменных (все одного типа), которые вы можете индексировать с помощью целого числа.
(А языки сценариев, которые позволяют создавать новые переменные во время выполнения, реализуют это также с помощью некоторого видаmap String → (что угодно), где эта карта либо метод / script-local, либо принадлежит некоторому окружающему объекту.)
Вы написали в комментарии к вопросу (лучше добавьте эти вещи в вопроссама она имеет кнопку «редактировать»):
Не вдаваясь в подробности, я пишу приложение, которое запускается в более крупной программе.Обычно объекты собирают мусор после того, как я с ними покончу, но более крупная программа поддерживает их, поэтому для каждого требуется уникальное имя.Если я не дам каждому уникальное имя, старый объект будет перезаписан, но он все еще необходим в контексте большой программы.
Итак, вы хотите сохранить объекты, чтобы избежатьвывоз мусора?Используйте массив (или List, или что-нибудь еще).
Дело в том, что если вы хотите, чтобы ваша более крупная программа могла использовать эти объекты, вам как-то нужно передать их этому большая программа в любом случае.И тогда этой программе придется сохранять ссылки на эти объекты, тем самым избегая сбора мусора.Похоже, вы хотите решить проблему, которая не существует средствами, которых не существует: -)