2014-01-17 46 views
0

我試圖創建一種方法,當被調用時將添加一個新的Entity .Am嘗試使用for loopArrayList來執行此操作。 到目前爲止,這是我所:在for循環中創建多個Google App Engine實體

public void createUserEntity() { 
    ArrayList<Entity> user = new ArrayList<Entity>(); 
} 

的問題是Entity類是com.google.appengine.api.datastore.Entity和創造it.For例如Entity user = new Entity("user"); Am not sure how to add this關鍵argument when creating a new實體using ArrayList當它需要一個key說法。

ArrayList<Entity> user = new ArrayList<Entity>("user");試圖標記有錯誤消息Remove argument to match 'ArrayList<Entity>()'

+0

你在做什麼是對的。您不需要像新ArrayList (「用戶」)那樣創建陣列。 –

+0

我不明白。 –

回答

1

你並不需要嘗試ArrayList<Entity> user = new ArrayList<Entity>("user");因爲構造的說法是不正確的。

事實上,你構建它的方式是正確的。

首先,你想創建一個實體或多個實體。您的方法名稱createUserEntity似乎僅表示一個實體。

我相信你可能需要編寫代碼有點像這樣:

public void createUserEntity(**//Pass** some parameters here) { 

    //Instantiate your new Entity over here 
    Entity newItem = new Entity("YourEntityName",KeyValue); 
    newItem.setProperty("prop1",prop1value); 
    newItem.setProperty("prop2",prop2value); 
    ... 
    //Persist the Entity 

} 

您可以在參數鍵值傳遞給該方法或通過一些發電機類檢索它,如果這是你是什麼這樣做。

我已經向您展示了單個實體的代碼,如果您想在循環中創建多個實體,則可以進一步擴展它。

+0

我試圖在每次調用方法時創建一個新實體。我不是很熟悉持久化對象,但通過您的示例來判斷,每次調用createUserEntity()時都會創建並存儲一個新實體嗎? –

+1

是的。每次需要創建一個新實體時,都可以調用'createUserEntity()'方法,將該實體的參數傳遞給它,並確保在'createUserEntity()'方法內編寫了持久性代碼。有關詳細信息,請參閱http://googcloudlabs.appspot.com/codelabexercise1.html。 – Romin

+1

謝謝你,我現在明白了。 –