2012-03-02 66 views
1

我是來自google的協議緩衝區的新手,所以我嘗試了Java教程,一切順利,直到我嘗試製作協議類的實例。所以我試圖製作自己的原始文件,但是我遇到了同樣的問題。問題就出在這一段代碼:使用協議緩衝區無法在Java中找到符號

AddressBook.Builder address = new AddressBook.newBuilder(); 

在我得到一個找不到符號錯誤newBuilder()的一部分。在protoc生成的文件中的註釋中,它說使用newBuilder()來創建類的一個實例,我找不到問題。有誰知道這個問題,有沒有解決方案?

回答

4

這就是問題所在:

new AddressBook.newBuilder(); 

這句法是一個方法調用和一個構造函數調用之間的一半。 newBuilder()只是一個靜態的方法。你只需要:

AddressBook.Builder builder = AddressBook.newBuilder(); 
+0

這也讓我也。雖然我理解javac爲這種類型的錯誤輸出的消息是否合理,但它可能更有用。 – thomasfedb 2015-03-09 03:45:50