Pointer-less targets ==================== There are some bytecodes/VMs that do not support interior pointers, i.e. a pointer that points to a field inside a struct or an array element inside an array. JVM is one such example. However, that can be solved by creating "proxy types" for having mutable references to primitive types: // Interface public interface MutableIntReference { public void set(int value); public int get(); } // For structs: class MyStruct { public int a; } public class Ref_a implements MutableIntReference { private final MyStruct target; public Ref_a(final MyStruct target) { this.target = target; } @Override public void set(final int value) { target.a = value; } @Override public void get() { return target.a; } } // For arrays: public class IntElementReference MutableIntReference { private final int[] target; private final int index; public IntElementReference(final int[] target, final int index) { this.target = target; this.index = index; } @Override public void set(final int value) { target[index] = value; } @Override public void get() { return target[index]; } }