cast : Java Glossary

go to home page C words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish 2007-07-06 by Roedy Green ©1996-2009 Canadian Mind Products
index page for letter ⇒ punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all)
cast
There are two useful kinds of casts.
  1. Primitive or converting casts e.g.
    // primitive converting cast
    short s = (short) someInt;
    would convert to a short integer.
  2. Mollifying casts assure Java that a general reference is actually something more specific, a subclass of that general type. E.g.
    // mollifying cast
    Dalmatian d = (Dalmatian) dog;
    assures Java that the dogRef pointer really points to a Dalmatian. Java checks that this is indeed so before proceeding. Casting objects is a misleading terminology. Any actual object has a definite class, set when it was instantiated. Nothing can change that during the lifetime of the object. The object it self is unchanged when you cast its reference.

    In the days before generics, casts were most needed after you retrieved an element from a Collection. The collection just gave you a generic Object, but you knew better what it was, since you knew what sort of Objects you put into the collection.

    If a mollifying downcast fails, because the object is not really what you tried to cast it to, you will get a ClassCastException. Upcasts always succeed. Upcasts are always unnecessay.

    Before you cast, you can use instanceof, or one of its brothers, to check if a cast will work.

Learning More

Sun’s Javadoc on Class.isAssignableFrom : available:
Sun’s Javadoc on Class.asSubclass : available:

CMP homejump to top
CMP logo
feedback Please email your feedback for publication, errors, omissions, broken/redirected link reports
and suggestions to improve this page to Roedy Green : feedback email
made with CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[65.110.21.43]
Your face IP:[38.103.63.62] The information on this page is for non-military use only.
You are visitor number 27,004. Military use includes use by defence contractors.
You can get a fresh copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/cast.html J:\mindprod\jgloss\cast.html