对于类型对象,未定义toStringHelper()

时间:2013-06-28 13:42:00

标签: guava

我正在使用番石榴。 我得到一个“方法toStringHelper()未定义为eclipse中的类型对象错误”。 当突然发生这些错误时,我没有任何错误。

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

3 个答案:

答案 0 :(得分:4)

我会检查您的类路径上没有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

答案 1 :(得分:0)

您的代码是正确的。它似乎是你的Eclipse搞砸了。完全清理/重建项目,和/或重新启动Eclipse和系统。我知道这是伏都教,但是当Eclipse开始产生毫无意义的错误时,它通常会有所帮助。

答案 2 :(得分:0)

好的,现在解决了问题。 显然,在部署Web项目时,eclipse会添加osgi库,其中一个库有一个没有ToStringHelper方法的guava的后台版本。删除了那个,没有问题了。