lundi 25 avril 2016

How to check if an Object instance is a valid return for a Method

I have an Object instance obj and a Method object method. How can I check to see if obj would be a valid return for the method?

Assume method has no parameters and it's not a return type of void (confirmed as a getter).

For example, if obj is null then the return type for method cannot be a primitive. Alright, got that figured out. However, Class.isAssignableFrom does not take into account unboxing and boxing from primitives. For example int.class.isAssignableFrom(Integer.class) returns false, but that would be a valid return for the method.

An option I could take is use Class.cast but using exceptions for programming flow is rather nasty and generating exceptions is also costly. But it is something I am aware of.

I'm kind of stumped on exactly how to figure this all out elegantly. Help would be much appreciated.





Aucun commentaire:

Enregistrer un commentaire