2015-09-12 101 views
2

我不明白在其他線程其他的答案,所以這裏的字符串數組導入雲這樣一個問題:的Java:從另一個類

如何導入一個字符串數組從一類到另一個?這個列表很長,這使得它在一個班的方法中看起來很糟糕。

這是它的外觀:

List<String> countriesList = new ArrayList<>(
    Arrays.asList("Japan", 
        "Sweden", //Etc... 

我也有另一個連接到它(這是一個猜測國家和城市的遊戲和國家是由隨機的Math.random)。

List<String> huvudList = new ArrayList<>(
    Arrays.asList(
     "Tokyo", 
     "Stockholm", //Etc... 

因此,我怎麼把這些名單中的另一個類,它們導入到我的主類,通常使用它們(所以我仍然能夠爲隨機值隨機到列表,等等)。有沒有什麼漂亮的方法可以做到這一點,還是應該堅持我所得到的?

我這是怎麼開始的,我會把列出類:

爲什麼會這樣,當一個錯誤?它以何種方式錯誤? (ListaLandQuiz是類和countriesList是列表)。它說The method countriesList(int) is undefined for the type ListaLandQuiz

package Games; 
    import java.util.List; 
    import java.util.ArrayList; 
    import java.util.Collections; 


public class Experiments { 

    public static void main(String[] args) { 
     // Importing classes 

     System.out.println(ListaLandQuiz.countriesList(3)); 

    } 

} 

在此先感謝。

+0

您在哪裏可以生成隨機國家名稱的方法? – Blip

回答

6

假設您需要的名單共享和不可變的,只是讓他們公共的和靜態:

public final class MyLists { 

    public static final List<String> COUNTRIES = Collections.unmodifiableList(Arrays.asList(
      "Japan", 
      "Sweden", 
      //Etc.. 
    )); 

    public static final List<String> CAPITALS = Collections.unmodifiableList(Arrays.asList(
      "Tokyo", 
      "Stockholm", 
      //Etc... 
    )); 

} 

現在,您可以隨時隨地訪問他們爲:

MyLists.COUNTRIES 
+0

我得到一個錯誤,說我必須有public static void main(String [] args)。 「Collections」下面有一條紅線。有任何想法嗎? – Ainvox

+0

@Ainvox您需要爲適當的類添加一個import語句('java.util.Collections')。這是基本的Java,你可能想要學習一些教程或爲Java初學者購買一本好書。 –

+0

@MarkRotteveel對不起,我從來沒有使用清單或集合。請參考我的最新編輯,並告訴我,如果您可以在此處找到我的代碼出了什麼問題。 – Ainvox

0

可以使用依賴注入:

public class Demo{ 
    List<String> list; 

    public Demo(List<String> list){ 
    this.list = list; 
    } 
} 
+0

或者使用靜態列表作爲字段 – romanvintonyak