312 Parameter[] tmp = parameters;
313
314 if (tmp == null) {
315
316 // Otherwise, go to the JVM to get them
317 tmp = getParameters0();
318
319 // If we get back nothing, then synthesize parameters
320 if (tmp == null)
321 tmp = synthesizeAllParams();
322
323 parameters = tmp;
324 }
325
326 return tmp;
327 }
328
329 private transient volatile Parameter[] parameters;
330
331 private native Parameter[] getParameters0();
332
333 /**
334 * Returns an array of {@code Class} objects that represent the
335 * types of exceptions declared to be thrown by the underlying
336 * executable represented by this object. Returns an array of
337 * length 0 if the executable declares no exceptions in its {@code
338 * throws} clause.
339 *
340 * @return the exception types declared as being thrown by the
341 * executable this object represents
342 */
343 public abstract Class<?>[] getExceptionTypes();
344
345 /**
346 * Returns an array of {@code Type} objects that represent the
347 * exceptions declared to be thrown by this executable object.
348 * Returns an array of length 0 if the underlying executable declares
349 * no exceptions in its {@code throws} clause.
350 *
351 * <p>If an exception type is a type variable or a parameterized
|
312 Parameter[] tmp = parameters;
313
314 if (tmp == null) {
315
316 // Otherwise, go to the JVM to get them
317 tmp = getParameters0();
318
319 // If we get back nothing, then synthesize parameters
320 if (tmp == null)
321 tmp = synthesizeAllParams();
322
323 parameters = tmp;
324 }
325
326 return tmp;
327 }
328
329 private transient volatile Parameter[] parameters;
330
331 private native Parameter[] getParameters0();
332 native byte[] getTypeAnnotationBytes0();
333
334 /**
335 * Returns an array of {@code Class} objects that represent the
336 * types of exceptions declared to be thrown by the underlying
337 * executable represented by this object. Returns an array of
338 * length 0 if the executable declares no exceptions in its {@code
339 * throws} clause.
340 *
341 * @return the exception types declared as being thrown by the
342 * executable this object represents
343 */
344 public abstract Class<?>[] getExceptionTypes();
345
346 /**
347 * Returns an array of {@code Type} objects that represent the
348 * exceptions declared to be thrown by this executable object.
349 * Returns an array of length 0 if the underlying executable declares
350 * no exceptions in its {@code throws} clause.
351 *
352 * <p>If an exception type is a type variable or a parameterized
|