2

其他人在 Android Studio 中看到了“模棱两可的方法调用”错误

getClass()

但我看到它是为了

Object.toString()

其他人看到了吗?

我拥有的 Android Studio 版本是 0.8.6。

4

1 回答 1

1

首先,回答你的实际问题,是的,我看到了,我正在运行 Android Studio (Beta) 0.8.14,它是一个 Android Studio/IntelliJ 错误,如前所述,所以你的代码应该没问题实际编译。但是,如果你想让它停止用红色强调所有内容:

您可能会注意到在Android Studio - Ambiguous method call getClass()getClass()中找到的调用问题,您可以将有问题的对象转换为 an来解决它:Object

((Object) myObject).toString()

或者,根据您正在处理的情况,您可以依赖 Java 包含的库隐式*调用toString()对象,就像我的代码一样,我在其中附加到 a StringBuffer

sb.append("Object's toString() returned: " + myObject);

注意:即使您没有String我在那里定义的文字对象,这仍然有效,所以这也是有效的:

sb.append(myObject);

或者,如果您只是打印到标准输出,

System.out.println(myObject);

*作为旁注,它实际上并没有被隐式调用,而是许多 Java 的内置类具有接受类型对象的重载方法签名,Object然后通过调用将其转换为字符串String.valueOf(myObject)- 请参阅对象如何会隐式调用 toString 方法吗?有关此的更多信息。

于 2014-12-09T20:18:29.850 回答