2015-10-06 70 views
0

我有幾個對象,我想存儲在一個arrayList中,代表單個彙編語言指令(例如,添加,跳轉等)。每個ArrayList中的對象對於給定指令都是常量,所以我只需要在加載時將給定指令的每個對象加載到適當的arrayList中。初始化和命名,Java中的ArrayList

這些繁瑣的是,我需要命名每個對象的他們添加到ArrayList之前:

static { 
     ... 
      ArrayList<CodeFrag[]> intIntGtrEqlProtoCode = new ArrayList<CodeFrag[]>(); 
... 
         intIntGtrEqlProtoCode.add(intIntGtrEqlInst1); 
         CodeFrag[] intIntGtrEqlInst2 = {Subtract}; 
         intIntGtrEqlProtoCode.add(intIntGtrEqlInst2); 
         CodeFrag[] intIntGtrEqlInst3 = {Duplicate}; 
     ... 
    } 

我有一種感覺,好像有避免做這一切極其乏味的命名方式。有人可以指出我嗎?

+7

'intIntGtrEqlProtoCode.add(new CodeFrag [] {Subtract})'? – MadProgrammer

回答

0

你可以做這樣的事情:

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));