• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

primitive type "introspection"..

 
edi kapllani
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am trying mathematics operations and relations between primitives in Java. Can you help me to know anny way which shows me in anny moment the primitive type which I am elaborating.
thank you!
ciao!
 
Jody Seigle
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I've searched the API for something that will do this easily and can't find a straight-forward way to do it.
If you can get a wrapper class for the primitive then you can call getClass().toString() on it, to tell which type you have. It would be nice if the java.lang.Number class had a getInstance() method for each of the java primitives that would return an Instance of the correct wrapper.
such as Double getInstance(double d)
Float getInstance(float f)
so that at runtime the correct method would be called and you could get the correct instance. If you wanted to, you could write this static class yourself consisting of a static getInstance method for each of the 8 primitives.
Should only be ~20 lines of code anyway.
 
Cindy Glass
"The Hood"
Sheriff
Posts: 8521
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, you can do this using reflection. We had a long talk about this once here: http://www.javaranch.com/ubb/Forum1/HTML/001421.html
 
Jody Seigle
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Not to bring up an old topic... but that old discussion only gives you the corresponding Class reference for a primitive type. Not the type of the result of a conversion operation dynamically.
I'm assuming he's wanting this for testing conversion/casting in Java and perhaps wanting to know what type the following yields :
double d = 5.0
float f = 6.0
getInstance(d + f).getClass().toString();
would be a (painful, but workable) way to do this.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic