192 * mirrored by this {@link ObjectReference} will occur. This |
192 * mirrored by this {@link ObjectReference} will occur. This |
193 * behavior can be changed by specifying the |
193 * behavior can be changed by specifying the |
194 * {@link #INVOKE_NONVIRTUAL} bit flag in the <code>options</code> |
194 * {@link #INVOKE_NONVIRTUAL} bit flag in the <code>options</code> |
195 * argument. If this flag is set, the specified method is invoked |
195 * argument. If this flag is set, the specified method is invoked |
196 * whether or not it is overridden for this object's runtime type. |
196 * whether or not it is overridden for this object's runtime type. |
197 * The method, in this case, must not belong to an interface and |
197 * The method, in this case, must have an implementation, either in a class |
198 * must not be abstract. This option is useful for performing method |
198 * or an interface. This option is useful for performing method invocations |
199 * invocations like those done with the <code>super</code> keyword in |
199 * like those done with the <code>super</code> keyword in the Java programming |
200 * the Java programming language. |
200 * language. |
201 * <p> |
201 * <p> |
202 * By default, all threads in the target VM are resumed while |
202 * By default, all threads in the target VM are resumed while |
203 * the method is being invoked if they were previously |
203 * the method is being invoked if they were previously |
204 * suspended by an event or by {@link VirtualMachine#suspend} or |
204 * suspended by an event or by {@link VirtualMachine#suspend} or |
205 * {@link ThreadReference#suspend}. This is done to prevent the deadlocks |
205 * {@link ThreadReference#suspend}. This is done to prevent the deadlocks |
244 * in the order they appear in the method signature. |
244 * in the order they appear in the method signature. |
245 * @param options the integer bit flag options. |
245 * @param options the integer bit flag options. |
246 * @return a {@link Value} mirror of the invoked method's return value. |
246 * @return a {@link Value} mirror of the invoked method's return value. |
247 * @throws java.lang.IllegalArgumentException if the method is not |
247 * @throws java.lang.IllegalArgumentException if the method is not |
248 * a member of this object's class, if the size of the argument list |
248 * a member of this object's class, if the size of the argument list |
249 * does not match the number of declared arguemnts for the method, |
249 * does not match the number of declared arguments for the method, |
250 * if the method is a constructor or static intializer, or |
250 * if the method is a constructor or static intializer, or |
251 * if {@link #INVOKE_NONVIRTUAL} is specified and the method is |
251 * if {@link #INVOKE_NONVIRTUAL} is specified and the method is |
252 * either abstract or an interface member. |
252 * either abstract or a non-default interface member. |
253 * @throws {@link InvalidTypeException} if any argument in the |
253 * @throws {@link InvalidTypeException} if any argument in the |
254 * argument list is not assignable to the corresponding method argument |
254 * argument list is not assignable to the corresponding method argument |
255 * type. |
255 * type. |
256 * @throws ClassNotLoadedException if any argument type has not yet been loaded |
256 * @throws ClassNotLoadedException if any argument type has not yet been loaded |
257 * through the appropriate class loader. |
257 * through the appropriate class loader. |