0

我正在使用番石榴。我在 Eclipse 中收到“方法 toStringHelper() 未定义类型对象错误”。当突然这些错误开始出现时,我正在毫无错误地工作。

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

3 回答 3

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

于 2013-06-28T16:17:44.570 回答
0

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

于 2013-06-28T13:49:28.270 回答
0

好的,现在问题已解决。显然,Eclipse 在部署 Web 项目时添加了 osgi 库,其中一个库有一个回溯版本的番石榴,没有 ToStringHelper 方法。删除了,不再有问题了。

于 2013-06-28T17:55:38.210 回答