Home | History | Annotate | Download | only in src
      1 
      2 /**
      3  * Create some objects and store them into an instance field.
      4  */
      5 public class Main {
      6     /**
      7      * Entry point.
      8      */
      9     public static void main(String[] args) {
     10         Holder holder = new Holder();
     11 
     12         Blah blah = new Blah();
     13 
     14         /* strictly speaking, this should fail */
     15         holder.mValue = blah;
     16 
     17         System.out.println("Assignment was allowed");
     18 
     19         /* try to use the reference; should fail */
     20         try {
     21             holder.mValue.run();
     22             System.err.println("ERROR: did not get expected ICCE");
     23         } catch (IncompatibleClassChangeError icce) {
     24             System.out.println("Got expected IncompatibleClassChangeError");
     25         }
     26 
     27         /* for fun, verify that it's the "alternate" type */
     28         //Comparable cmpx = holder.mValue;      /* compiler rejects */
     29         Comparable cmp = (Comparable) holder.mValue;
     30         cmp.compareTo(cmp);
     31 
     32         System.out.println("Done");
     33     }
     34 }
     35