Байт Бадди - как можно сделать поле самостоятельного типа? - PullRequest
3 голосов
/ 13 мая 2019

Необходимо описать структуру этого класса

class A{
    private List<A> listA;   
}

попробовал решение: Byte-buddy: генерировать классы с циклическими типами

, но это будетпривести к ошибке java.lang.ExceptionInInitializerError, вызванной: java.lang.IllegalStateException: не удается разрешить объявленный тип описания скрытого типа: ...

1 Ответ

0 голосов
/ 13 мая 2019

Вы можете использовать TargetType как ссылку для текущего сгенерированного типа:

new ByteBuddy()
  .subclass(Object.class)
  .name("A")
  .defineField("listA", 
      TypeDescription.Generic.Builder.parameterizedType(
          List.class, TargetType.class).build(),
      Visibility.PRIVATE)
  .make()
...