2013-06-28 82 views
0

我正在使用番石榴。 我得到一個「方法toStringHelper()未定義的類型對象錯誤」在日食。 我在沒有錯誤的時候突然出現這些錯誤。toStringHelper()未定義類型對象

@Override 
public String toString() 
{ 
    return Objects 
     .toStringHelper(this) 
     .add("id", this.id) 
     .add("custid", this.custid) 
     .toString(); 
} 
+0

你可以顯示你的eclipse標記爲錯誤的代碼嗎? –

+1

您確定已導入並使用'com.google.common.base.Objects',但不是**'java.util.Objects'? – Xaerxess

+0

是的,我已經導入「import com.google.common.base.Objects;」 –

回答

3

我會檢查你的類路徑中沒有Google Collections(Guava的前身),例如, google-collect-1.0.jar。它有一個Objects類的版本,它沒有toStringHelper方法。

另一種奇怪的可能性是,你必須在同一背景下的某處定義泛型類型Objects,如:

import com.google.common.base.MoreObjects; 

/** 
* In this class, "Objects" is a generic type parameter like "T", 
* just more confusing. 
*/ 
public class Foo<Objects> { 

    public String toString() { 
    return MoreObjects.toStringHelper(this) 
     ... 
    } 
} 

似乎不太可能,但是.... Guava docs

+0

不錯的建議。但沒有我沒有找到任何其他的谷歌jar在項目類路徑:( –

+0

編輯與另一種可能性,雖然它似乎更有可能的東西是重擊Eclipse比你那樣做並沒有注意到。=) – ColinD

+0

修復了這個問題。已經發布了答案。 –

0

您的代碼是正確的。它似乎是你的Eclipse搞砸了。做一個完整的清理/重建你的項目,和/或重新啓動你的Eclipse和你的系統。我知道,這是巫術,但當Eclipse開始產生無意義的錯誤時,它通常會有所幫助。

+0

nope甚至嘗試eclipse -clean ...仍然沒有工作:( –

0

好了,所以有問題現在修好。 在部署Web項目時顯然會添加osgi庫,其中一個庫有一個沒有ToStringHelper方法的番石榴版本。消除了這一點,並沒有問題了。

相關問題