2013-02-25 50 views
0

我想寫一個程序,到目前爲止的代碼的其餘部分工作,但我得到一個不兼容的類型發現:雙要求:雜貨項目在第38行。任何人都可以幫助我解釋爲什麼我收到這個錯誤以及如何糾正它?謝謝。這裏是我的代碼:不兼容的類型發現:雙重

import java.util.Scanner; 

public class GroceryList { 

    private GroceryItem[]groceryArr; //ARRAY HOLDS GROCERY ITEM OBJECTS 
    private int numItems; 
    private String date; 
    private String storeName; 
    public GroceryList(String inputDate, String inputName) { 

//FILL IN CODE HERE 
// CREATE ARRAY, INITIALIZE FIELDS 
    groceryArr = new GroceryItem[10]; 
    numItems = 0; 

    } 

    public void load() { 

    Scanner keyboard = new Scanner(System.in); 
     double sum = 0; 
     System.out.println ("Enter the trip date and then hit return:"); 
    date = keyboard.next(); 
    keyboard.nextLine(); 
    System.out.println("Enter the store name and then hit return:"); 
    storeName = keyboard.next(); 
    keyboard.nextLine(); 
    double number = keyboard.nextDouble(); 

    //NEED TO PROMPT USER FOR, AND READ IN THE DATE AND STORE NAME. 


    System.out.println("Enter each item bought and the price (then return)."); 
    System.out.println("Terminate with an item with a negative price."); 
    number = keyboard.nextDouble(); 

    while (number >= 0 && numItems < groceryArr.length) { 
     groceryArr[numItems] = number; 
     numItems++; 
     sum += number; 
     System.out.println("Enter each item bought and the price (then return)."); 
     System.out.println("Terminate with an item with a negative price."); 
     number = keyboard.nextDouble(); 
    } 


    /* 
    //READ IN AND STORE EACH ITEM. STORE NUMBER OF ITEMS 
    } 

    private GroceryItem computeTotalCost() { 
    //add code here 
    } 

    public void print() { 
    \\call computeTOtalCost 
    } 
    */ 
} 
} 
+0

那麼如果它在這一行groceryArr [numItems] = number;這是我從這裏不能告訴它可能是因爲groceryitem不是雙重的,即它應該是grceryArr [numItems] .Price =數字;無論如何,總是這樣。 – 2013-02-25 23:58:20

回答

0

「groceryArr [numItems的] =數目;」

groceryArr [一個numItems]是GroceryItem()的一個實例 - 「數字」是一個雙

你在你的GroceryItem需要雙變量()對象來存儲「編號」值。

+0

我改變了groceryItem來代替。並編譯。然而,當我運行它告訴我,我沒有一個靜態無效的主要方法接受字符串[]。但是當我添加它時,它告訴我所有以private開頭的行都是表達式的非法開始。我在哪裏放置靜態空線? – user2085224 2013-02-26 00:08:35

+0

在沒有看到新代碼的情況下,你可能在某處丟失了一個'}'(或者有一個太多) - 還要檢查是否沒有將'public static void main'方法放在錯誤的地方 - 確保它在最後'}'在上面的類中。 – kbbucks 2013-02-26 00:25:51

+0

其實現在我再次看到它,在課堂結束時你有太多的'}' - 刪除上面的最後一個。 – kbbucks 2013-02-26 00:27:36