提问者:小点点

java可选接口方法:模糊方法参考[重复]


我已经编码了这个:

this.referenceService.get(id)
    .map(Reference::hashCode)
    .map(Integer::toString);

我收到这个编译错误:

模糊的方法引用:Integer类型的toString()和toString(int)都符合条件

我怎么能解决这个问题?


共1个答案

匿名用户

你有两种可能的解决方案:

用lambda替换它:

this.referenceService.get(id)
    .map(ref-> Integer.toString(ref.hashCode()));

使用Object. toString()

this.referenceService.get(id)
    .map(Reference::hashCode)
    .map(Objects::toString); // this will cal toString method on you hash

编写自己的方法:

this.referenceService.get(id)
    .map(this::toHashString);

private Strign toHashString(Reference ref) {
  return Integer.toString(ref.hashCode());
}