Why does check* methods in Google Precondition library take an Object instead of a String? I can see that the object is called String.valueOf() on. I think this design was due to not making any assumption on behalf of the client. But I cannot think about a reasonable case where client will be calling this with anything other than a String.
I guess clients could pass an object that has implemented a toString() method. But can you give a real world example on how this can be used/ you have been using this?