2015-05-05 45 views
0

我想添加一個默認構造函數到我的數據類型。在默認構造函數下面是問題,「ingredients =」「;」。它給我一個錯誤說,字符串不能轉換爲String []。我在等號之後放置什麼來編譯它?如何初始化字符串數組的默認構造函數?

import java.util.Arrays; 
class Recipes { 
    private String[] ingredients = new String[20]; 
    private String[] instructions = new String[20]; 

public Recipes(){ 
    ingredients = "" ; 
    instructions = "" ; 
} 

public String[] getIngredients() { 
    return ingredients; 
} 

public void setIngredients(String[] inIngredients) { 
    ingredients = inIngredients; 
} 

public String[] getInstructions() { 
    return instructions; 
} 

public void setInstructions(String[] inInstructions) { 
    instructions = inInstructions; 
} 

    public void displayAll() { 
    System.out.println("The ingredients are " + ingredients); 
    System.out.println("The instructions are " + instructions); 
}  
} 

回答

1

您正在初始化一個字符串數組引用單個字符串值,這就是爲什麼編譯器瘋了。

你可以做到這一點

class Recipes { 
    private String[] ingredients = null; 
    private String[] instructions = null; 

public Recipes(){ 
    ingredients = new String[5]{"","","","",""}; 
    instructions = new String[5]{"","","","",""}; 
} 

我已經減少了陣列爲簡潔的大小。如果數組大小太大,您還可以使用for循環來分配填充數組中的空字符串。

class Recipes { 
     private String[] ingredients = new String[20]; 
     private String[] instructions = new String[20]; 

    public Recipes(){ 
     for(int i=0;i<ingredients.length;i++) 
     { 
     ingredients[i]=""; 
     instructions[i]=""; 
     } 
    } 
2

它沒有意義分配一個String"")至String[](的Strings陣列)。

你可能想要做你的默認構造函數根據您的要求下,之一:

  • 什麼也不做。陣列在聲明時已經初始化,即使它們充滿了null元素。
  • 將空字符串""分配給每個元素。您可以使用for循環或數組初始值設定項。
  • null賦值給數組。您大概可以通過調用setIngredientssetInstructions來替換數組引用。
+0

謝謝你的迴應。我的老師說他希望我們初始化兩個數組,以便每個數組中的每個索引都包含空字符串。我是相當新的,不知道將它們分配給null是否會滿足他的要求。 – James

+0

然後,您需要第二個選項,而不是第一個或第三個選項。 – rgettman

+2

'Arrays.fill'也可以,而不是for循環。 –

相關問題