71 try { 72 MethodHandle h = MethodHandles.arrayConstructor(clazz); 73 } catch (Exception e) { 74 assertEquals(exceptionClass, e.getClass()); 75 if (message != null) { 76 assertEquals(message, e.getMessage()); 77 } 78 caught = true; 79 } 80 assertTrue(caught); 81 } 82 83 @Test 84 public static void testArrayConstructor() throws Throwable { 85 MethodHandle h = MethodHandles.arrayConstructor(String[].class); 86 assertEquals(methodType(String[].class, int.class), h.type()); 87 String[] a = (String[]) h.invoke(17); 88 assertEquals(17, a.length); 89 } 90 91 } | 71 try { 72 MethodHandle h = MethodHandles.arrayConstructor(clazz); 73 } catch (Exception e) { 74 assertEquals(exceptionClass, e.getClass()); 75 if (message != null) { 76 assertEquals(message, e.getMessage()); 77 } 78 caught = true; 79 } 80 assertTrue(caught); 81 } 82 83 @Test 84 public static void testArrayConstructor() throws Throwable { 85 MethodHandle h = MethodHandles.arrayConstructor(String[].class); 86 assertEquals(methodType(String[].class, int.class), h.type()); 87 String[] a = (String[]) h.invoke(17); 88 assertEquals(17, a.length); 89 } 90 91 @Test(expectedExceptions = {NegativeArraySizeException.class}) 92 public static void testArrayConstructorNegativeIndex() throws Throwable { 93 MethodHandle h = MethodHandles.arrayConstructor(String[].class); 94 assertEquals(methodType(String[].class, int.class), h.type()); 95 h.invoke(-1); // throws exception 96 } 97 98 } |