-  
       
- All Superinterfaces:
 -  
         
Mirror 
- All Known Subinterfaces:
 -  
         
AccessWatchpointRequest,BreakpointRequest,ClassPrepareRequest,ClassUnloadRequest,ExceptionRequest,MethodEntryRequest,MethodExitRequest,ModificationWatchpointRequest,MonitorContendedEnteredRequest,MonitorContendedEnterRequest,MonitorWaitedRequest,MonitorWaitRequest,StepRequest,ThreadDeathRequest,ThreadStartRequest,VMDeathRequest,WatchpointRequest 
public interface EventRequest extends Mirror
表示通知事件的请求。 示例包括BreakpointRequest和ExceptionRequest。 当发生启用请求的事件发生时,EventSet将被放置在EventQueue上 。 现有事件请求的收集由EventRequestManager管理。可以通过过滤器控制为事件请求生成的事件数。 过滤器提供事件在事件队列放置之前必须满足的附加约束。 可以通过多次调用过滤添加方法(如
ExceptionRequest.addClassFilter(java.lang.String classPattern))来使用多个过滤器。 只有当事件被禁用时,过滤器才会一次添加到事件中。 使用CUT-OFF AND应用多个过滤器,按照它们被添加到请求的顺序。 只有满足所有过滤器的事件才会放在事件队列中。一组可用的过滤器取决于事件请求,一些过滤器的示例是:
- 线程过滤器允许控制生成事件的线程。
 - 类过滤器允许控制事件发生的类。
 - 实例过滤器允许控制事件发生的实例。
 - 计数过滤器可以控制事件报告的次数。
 
EventRequest以EventRequest作为参数的任何方法可能会导致VMDisconnectedException如果目标VM断开连接,并且VMDisconnectEvent已经或可以从EventQueue读取。如果目标虚拟机的内存
EventRequest,则EventRequest作为参数的方法可能会抛出VMOutOfMemoryException。- 从以下版本开始:
 - 1.3
 - 另请参见:
 -  
         
BreakpointEvent,EventQueue,EventRequestManager 
 
-  
        
       
-  
             
Field Summary
Fields Modifier and Type Field 描述 static intSUSPEND_ALL发生事件时暂停所有线程static intSUSPEND_EVENT_THREAD当事件发生时,只挂起生成事件的线程static intSUSPEND_NONE事件发生时暂停线程 
-  
             
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 voidaddCountFilter(int count)在给定数量的事件发生后,限制所要求的事件最多报告一次。voiddisable()与setEnabled(false)相同。voidenable()与setEnabled(true)相同。ObjectgetProperty(Object key)使用指定的键返回属性的值。booleanisEnabled()确定此事件请求当前是否已启用。voidputProperty(Object key, Object value)向此请求添加任意键/值“属性”。voidsetEnabled(boolean val)启用或禁用此事件请求。voidsetSuspendPolicy(int policy)确定在目标VM中发生请求的事件时挂起的线程。intsuspendPolicy()返回一个值,该值描述在目标VM中发生请求的事件时挂起的线程。-  
               
Methods inherited from interface com.sun.jdi.Mirror
toString, virtualMachine 
 -  
               
 
 -  
             
 
-  
        
       
-  
             
字段详细信息
-  
SUSPEND_NONE
static final int SUSPEND_NONE
事件发生时暂停线程- 另请参见:
 - Constant Field Values
 
 
-  
SUSPEND_EVENT_THREAD
static final int SUSPEND_EVENT_THREAD
当事件发生时,只挂起生成事件的线程- 另请参见:
 - Constant Field Values
 
 
-  
SUSPEND_ALL
static final int SUSPEND_ALL
发生事件时暂停所有线程- 另请参见:
 - Constant Field Values
 
 
 -  
 
-  
             
方法详细信息
-  
isEnabled
boolean isEnabled()
确定此事件请求当前是否已启用。- 结果
 -  
              
true如果启用; 否则为false。 
 
-  
setEnabled
void setEnabled(boolean val)
启用或禁用此事件请求。 当此事件请求被禁用时,事件请求将被忽略,并且如果其任何线程到达事件请求,目标VM将不会被停止。 已禁用的事件请求仍然存在,并包含在事件请求列表中,如EventRequestManager.breakpointRequests()。- 参数
 -  
              
val-true如果要启用事件请求;false否则。 - 异常
 -  
              
InvalidRequestStateException- 如果此请求已被删除。 -  
              
IllegalThreadStateException- 如果这是一个StepRequest,val是true,并且请求中命名的线程已经死亡或尚未启动。 
 
-  
enable
void enable()
与setEnabled(true)相同。- 异常
 -  
              
InvalidRequestStateException- 如果此请求已被删除。 -  
              
IllegalThreadStateException- 如果这是一个StepRequest,请求中命名的线程已经死机或尚未启动。 
 
-  
disable
void disable()
与setEnabled(false)相同。- 异常
 -  
              
InvalidRequestStateException- 如果此请求已被删除。 
 
-  
addCountFilter
void addCountFilter(int count)
在给定数量的事件发生后,限制所要求的事件最多报告一次。 该事件未报告此过滤器的第一个count - 1次。 要请求一次性事件,请调用此方法计数1。计数达到0后,将应用此请求中的任何后续过滤器。 如果没有这些过滤器导致事件被抑制,则会报告事件。 否则,不报告事件。 在这两种情况下,从未报告此请求的后续事件。
- 参数
 -  
              
count- 生成事件之前的次数。 - 异常
 -  
              
InvalidRequestStateException- 如果此请求当前已启用或已被删除。 过滤器只能添加到禁用的请求中。 -  
              
IllegalArgumentException- 如果count小于1。 
 
-  
setSuspendPolicy
void setSuspendPolicy(int policy)
确定在目标VM中发生请求的事件时挂起的线程。 使用SUSPEND_ALL挂起目标虚拟机中的所有线程(默认值)。 使用SUSPEND_EVENT_THREAD只挂起生成事件的线程。 使用SUSPEND_NONE暂停线程。通过事件进行的线程暂停具有与明确请求的暂停相同的功能 详见
ThreadReference.suspend()和VirtualMachine.suspend()。- 参数
 -  
              
policy- 选定的挂起政策。 - 异常
 -  
              
InvalidRequestStateException- 如果此请求当前已启用或已被删除。 暂停策略只能在禁用请求中设置。 -  
              
IllegalArgumentException- 如果policy参数包含非法值。 
 
-  
suspendPolicy
int suspendPolicy()
返回一个值,该值描述在目标VM中发生请求的事件时挂起的线程。 返回的值是SUSPEND_ALL,SUSPEND_EVENT_THREAD,或SUSPEND_NONE。- 结果
 - 当前挂起模式的请求
 
 
-  
putProperty
void putProperty(Object key, Object value)
向此请求添加任意键/值“属性”。 该属性可由JDI的客户端使用,将应用程序信息与请求相关联; JDI内部不使用这些客户端集属性。get/putProperty方法提供对每个实例地图的访问。 这不能与Properties混淆。如果值为null,则此方法将删除该属性。
 
-  
getProperty
Object getProperty(Object key)
使用指定的键返回属性的值。 只有使用putProperty(java.lang.Object, java.lang.Object)添加的属性将返回非空值。- 结果
 - 该属性的值或null
 - 另请参见:
 -  
              
putProperty(java.lang.Object, java.lang.Object) 
 
 -  
 
 -