What is the reason why classes with a recursive definition cannot be generated?
For example, the call to 'toClass()' in the following test case produces the exception stacktrace below :
import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtField;
import javassist.CtNewClass;
import javassist.NotFoundException;
import junit.framework.TestCase;
public class TestRecursiveClass extends TestCase {
public void test() throws NotFoundException, CannotCompileException {
ClassPool pool=ClassPool.getDefault();
CtNewClass recursiveClass = new CtNewClass("RecursiveClass", pool , false, pool.get("java.lang.Object"));
CtField f=new CtField(recursiveClass, "instance", recursiveClass);
recursiveClass.addField(f, "null");
recursiveClass.toClass();
}
}
javassist.CannotCompileException: by javassist.CannotCompileException: cannot find RecursiveClass at javassist.ClassPool.toClass(ClassPool.java:816) at javassist.ClassPool.toClass(ClassPool.java:765) at javassist.CtClass.toClass(CtClass.java:985) at TestRecursiveClass.test(TestRecursiveClass.java:16)