Инициализация и именование, 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));
Другие вопросы по тегам