2011-05-05 30 views
1

我正在編寫Scala應用程序,以部署在Google App Engine上。我試着按照here的說明使用數據存儲中的實體,但代碼不能編譯。如何從Scala應用程序使用Google App Engine數據存儲?

import java.util.Date; 
import com.google.appengine.api.datastore.DatastoreService; 
import com.google.appengine.api.datastore.DatastoreServiceFactory; 
import com.google.appengine.api.datastore.Entity; 
// ... 
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 

這使我在最後一行的錯誤,它說:

"Expected class or object definition" 

有不同的代碼,我應該使用,因爲我在斯卡拉寫?

+0

你能告訴我們你得到的編譯錯誤嗎? – 2011-05-05 16:19:28

+0

'import java.util.Date; import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Entity; // ... DatastoreService數據存儲= DatastoreServiceFactory.getDatastoreService();' 這使我在最後一行的錯誤,它說:「預期類或對象定義」 – joellewenstein 2011-05-05 16:27:03

+1

您的問題是你創建對象在類定義之外......您不能在方法外隨機寫入「DatastoreService datastore = ...」。 – 2011-05-05 16:30:24

回答

1

是的,您應該在Scala中編寫不同的代碼。

例如,創建一個整數對象,其值爲42,你可以這樣寫:

var theNum = 42 

或許

val theNum = 42 

請注意,你的長期語句不包括任何varval

另外,您可以省去很多用Java編寫的東西。我期望它可以工作,如果你只是寫:

val datastore = DatastoreServiceFactory.getDatastoreService 

斯卡拉編譯器會推斷它是一個DataStoreService。除了函數/方法定義之外,只是浪費時間來編寫它。編譯器還會在大多數行的末尾推斷分號。我不確定編譯器是否會在方法調用中推斷出(),但爲什麼不試一試,看看它是否有效。這是一種新的語言,你需要習慣以不同的方式寫東西的想法。

相關問題