Это может быть довольно сложно. Мои знания неполны, но у вас будет по крайней мере три вида инструкций, на которые следует обратить внимание (NEWARRAY, ANEWARRAY и MULTIANEWARRAY). Если посмотреть на предыдущую инструкцию (или в случае MULTIANEWARRAY, n предыдущие инструкции), получим размер, который, даже если он был константой, может быть загружен с помощью BIPUSH, SIPUSH или LDC (что-нибудь еще?) В зависимости от размер. Как вы заметили, если класс является результатом вычислений, вы можете прослеживать инструкции до бесконечности.
Если я правильно помню, FindBugs использует BCEL внутри, но я никогда не копался там, чтобы точно понять, насколько они умны. Если у какой-либо из этих групп есть соответствующие списки рассылки, они могут оказаться лучшим местом, чтобы спросить - они, вероятно, по крайней мере узнают, был ли кто-то по этому пути раньше.