Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

referrence variable casting

 
anilkumar vankayalapati
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
what is reference variable casting ,waht can we do with that what is the use of that
 
Stan James
(instanceof Sidekick)
Ranch Hand
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi, welcome to the ranch!

Here's an answer that shows a questionable design on an API I use. A base class Entry is extended by File and Folder. I can ask for the entries in a folder that are files or folders or both.


Now I can call all the methods defined by Entry on the objects in this array. But what if I want to deal with Files and call some methods that only exist on File?

The getEntries method tells the compiler it returns Entry objects, so this fails:

Casting tells the compiler something it can't figure out by looking at the code. In the following I'm saying I know this object is really a File even though getEntries does not guarantee it in a way the compiler can understand.

What happens if I mess up and use the FOLDER parameter and then try to cast to File? When I try to cast a Folder to File I'll get an exception.

Finally, note that casting doesn't change the actual object at all. It only gives me a new reference to the object with a different type. With my new reference I can use methods that are defined on the subtype.

Did that help? Can you think of a couple examples you can code up and test? It would be a great experience to cause a cast exception on your own!
[ March 22, 2006: Message edited by: Stan James ]
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic