2

Others have seen the "Ambiguous Method Call" error in Android Studio for

getClass()

But I'm seeing it for

Object.toString()

Has anyone else seen that?

The version of Android Studio I have is 0.8.6.

Coder Roadie
  • 838
  • 1
  • 8
  • 11

1 Answers1

1

First off, to answer your actual question, yes I am seeing that, and I am running Android Studio (Beta) 0.8.14, and it is an Android Studio/IntelliJ bug, as mentioned before, so your code should be fine when you actually compile. But, if you want it to stop underlining everything in red:

As you may notice on the issue of the getClass() call found at Android Studio - Ambiguous method call getClass(), you can cast the object in question to an Object to resolve it as such:

((Object) myObject).toString()

Alternatively, depending on the case you're dealing with, you may be able to rely on Java's included libraries implicitly* calling toString() on the object, as was the case with my code, where I was appending to a StringBuffer:

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

Note: this will still work even if you didn't have the literal String object that I defined there, so this is also valid:

sb.append(myObject);

Or if you're simply printing to standard out,

System.out.println(myObject);

*As a side note, it is not actually being called implicitly, but rather many of Java's built-in classes have an overloaded method signature that accepts objects of type Object, which is then turned into a string via a call to String.valueOf(myObject) - see How an object will call toString method implicitly? for more about this.

Community
  • 1
  • 1
childofsoong
  • 1,918
  • 16
  • 23