Main.java revision f6c387128427e121477c1b32ad35cdcaa5101ba3
1// Copyright 2007 The Android Open Source Project 2 3/** 4 * Test instance creation. 5 */ 6public class Main { 7 public static void main(String[] args) { 8 // should succeed 9 try { 10 Class c = Class.forName("LocalClass"); 11 Object obj = c.newInstance(); 12 System.out.println("LocalClass succeeded"); 13 } catch (Exception ex) { 14 System.err.println("LocalClass failed"); 15 ex.printStackTrace(); 16 } 17 18 // should fail 19 try { 20 Class c = Class.forName("otherpackage.PackageAccess"); 21 Object obj = c.newInstance(); 22 System.out.println("ERROR: PackageAccess succeeded unexpectedly"); 23 } catch (IllegalAccessException iae) { 24 System.out.println("Got expected PackageAccess complaint"); 25 } catch (Exception ex) { 26 System.err.println("Got unexpected PackageAccess failure"); 27 ex.printStackTrace(); 28 } 29 30 LocalClass2.main(); 31 } 32} 33 34class LocalClass { 35 // this class has a default constructor with package visibility 36} 37 38 39class LocalClass2 { 40 public static void main() { 41 try { 42 CC.newInstance(); 43 System.out.println("LocalClass2 succeeded"); 44 } catch (Exception ex) { 45 System.err.println("Got unexpected LocalClass2 failure"); 46 ex.printStackTrace(); 47 } 48 } 49 50 static class CC { 51 private CC() {} 52 53 static Object newInstance() { 54 try { 55 Class c = CC.class; 56 return c.newInstance(); 57 } catch (Exception ex) { 58 ex.printStackTrace(); 59 return null; 60 } 61 } 62 } 63} 64 65