GOTO for Java (original) (raw)

PHP has finally taken the plunge into the 1960s by implementing GOTO. Here's an implementation for Java.

This stupid hack was inspired by

Example

   1 public class GotoDemo {
   2     public static void main(String[] args) {
   3         int i = 3;
   4         System.out.println(i);
   5         i = i - 1;
   6         if (i >= 0) {
   7             GotoFactory.getSharedInstance().getGoto().go(4);
   8         }
   9         
  10         try {
  11             System.out.print("Hell");
  12             if (Math.random() > 0) throw new Exception();            
  13             System.out.println("World!");
  14         } catch (Exception e) {
  15             System.out.print("o ");
  16             GotoFactory.getSharedInstance().getGoto().go(13);            
  17         }
  18     }
  19 }

Running it:

$ java -cp bin:asm-3.1.jar GotoClassLoader GotoDemo
3 2 1 0 Hello World!

Caveats

I spent all of 30 minutes on this, so there are some caveats:

Source code

Source code here. Requires the ASM library.

Comments