|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectcn.wensiqun.asmsupport.definition.AbstractExecuteable
cn.wensiqun.asmsupport.block.ProgramBlock
cn.wensiqun.asmsupport.block.control.SeriesBlock
cn.wensiqun.asmsupport.block.control.Finally
public abstract class Finally
| 字段摘要 |
|---|
| 从类 cn.wensiqun.asmsupport.block.ProgramBlock 继承的字段 |
|---|
insnHelper, method, ownerBlock, returned, scope |
| 构造方法摘要 | |
|---|---|
Finally()
|
|
| 方法摘要 | |
|---|---|
void |
executing()
|
protected void |
init()
|
void |
prepare()
执行execute的预先操作 在此方法中如果要对执行队列操作 那么不能对执行队列做删除和添加操作 只能做替操作 除了MethodBody类型的Block是通过直接调用的方式执行Prepare方法之外, 其他Block 均在调用创建该Block的时候触发Prepare方法, 所有创建非MethodBody类型Block都在 jw.asmsupport.block.operator.CreateBlockOperator接口中 对于一般的Block,比如if...else... |
void |
setReturned(boolean returned)
|
String |
toString()
|
| 从类 cn.wensiqun.asmsupport.block.control.SeriesBlock 继承的方法 |
|---|
getPrevious, setPrevious |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 构造方法详细信息 |
|---|
public Finally()
| 方法详细信息 |
|---|
public void prepare()
Executeable 复制的描述执行execute的预先操作 在此方法中如果要对执行队列操作 那么不能对执行队列做删除和添加操作 只能做替操作
除了MethodBody类型的Block是通过直接调用的方式执行Prepare方法之外, 其他Block 均在调用创建该Block的时候触发Prepare方法, 所有创建非MethodBody类型Block都在 jw.asmsupport.block.operator.CreateBlockOperator接口中
对于一般的Block,比如if...else... 比如如下代码:
public void method(){
if(...){
while(....){
...
}
}else{
for(...){
...
}
}
}
通常执行prepare的顺序如下:
$ 表示调用 CreateBlockOperator.xxx方法
_\ 表示触发prepare方法
MethodBody
|
|$
|____\ IF Block
| |
| |$
| |____\ While Block
| |
| |
|/______________________|
|
|$
|____\ Else Block
|
|$
|____\ For Block
|
|
Method Body End /_____________|
但是对于每个连续的Try...Catch...Finally...块, asmsupport会先将这一连续的 块逐一创建完成,再执行各自的Prepare方法。 如下图所示
$ 表示调用 createBlockOperator.xxx方法
_\ 表示出发prepare方法
MethodBody
|
|$
|____\ Try Block 1
| |
| |
| |
|$ |
|____\ Catch Block 1 |
| |
|$ |
|____\ Finally Block 1 |
| |
| |
|_________________________|
|
Method Body End /_____________|
Executeable 中的 prepareProgramBlock 中的 prepareprotected final void init()
ProgramBlock 中的 initpublic final void executing()
ProgramBlock 中的 executingpublic void setReturned(boolean returned)
ProgramBlock 中的 setReturnedpublic String toString()
Object 中的 toString
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||