public abstract @interface AutoreleasePool implements Annotation

Annotation that indicates the translator should inject an autorelease pool around the method body. Only valid on methods that don't return anything.

Useful in high-level contexts to ensure that temporary objects allocated within the method or loop are deallocated.

Example usage:

 // Temporary objects allocated during execution of this method will
 // be deallocated upon returning from this method.
 public void doWork() {

 public void doWork(Iterable<Runnable> workToDo) {
   // Adding @AutoreleasePool on the loop variable causes a separate
   // autorelease pool to be attached to each loop iteration, clearing
   // up temporary objects after each iteration
   for (@AutoreleasePool Runnable item : workToDo) {;

Inherited Method Summary