Инициализация и именование, ArrayList в Java
У меня есть несколько объектов, которые я хочу сохранить в arrayList, который представляет одну инструкцию на ассемблере (например, Add, Jump и т. Д.). Объекты в каждом ArrayList являются постоянными для данной инструкции, поэтому мне просто нужно загрузить каждый из объектов для данной инструкции в соответствующий arrayList один раз во время загрузки.
Утомительная часть заключается в том, что мне нужно назвать каждый из объектов, прежде чем они будут добавлены в arrayList:
static {
...
ArrayList<CodeFrag[]> intIntGtrEqlProtoCode = new ArrayList<CodeFrag[]>();
...
intIntGtrEqlProtoCode.add(intIntGtrEqlInst1);
CodeFrag[] intIntGtrEqlInst2 = {Subtract};
intIntGtrEqlProtoCode.add(intIntGtrEqlInst2);
CodeFrag[] intIntGtrEqlInst3 = {Duplicate};
...
}
У меня такое ощущение, что есть способ избежать такого скучного наименования. Может ли кто-нибудь указать мне на это?
1 ответ
Вы могли бы сделать что-то вроде этого:
CodeFrag[] arr = {Subtract, Duplicate, Foo, Bar};
for (CodeFrag c : arr)
intIntGtrEqlProtoCode.add(new CodeFrag[]{c});
Кроме того, если все массивы имеют длину 1
не могли бы вы заменить его на List<CodeFrag>
? Тогда вы могли бы просто сделать
intIntGtrEqlProtoCode = new ArrayList<CodeFrag>(Arrays.asList(Subtract, Duplicate, Foo, Bar));