Java有一个finalize块,允许在一个块离开后执行一些语句(即使引发了异常也会执行).例:
try {
...
} catch (Exception e) {
...
} finally {
... // any code here
}
Run Code Online (Sandbox Code Playgroud)
Ada具有允许实现Finalize操作的受控对象,但没有与java中相同的finalize块.这对于记录,关闭文件,事务等非常有用(无需为每个可能的块创建特定的标记类型).
给定Ada保护类型:
protected type A is
procedure Foo;
...
private
M : Map;
...
end A;
Run Code Online (Sandbox Code Playgroud)
在完成受保护对象时,您将如何实现或模拟调用的Finalize过程?
基本上我需要使用受保护类型的私有成员进行一些管理(迭代某些地图等).