Я думаю, что это не сработало, потому что вы использовали более 65535 байт в статическом инициализаторе или, более конкретно, использовали исходный файл Java для ввода ..
public static final Names[] DB = new Names[]{
new Names("Albert","Person"),
new Names("Bobby","Animal"),...
Введет вас в ограничения в спецификации компилятора / языка - т.е. из спецификации JVM
"Количество кода на ненативный, неабстрактный метод ограничено 65536
байт по размерам индексов в таблице исключений кода
атрибут (§4.7.3), в атрибуте LineNumberTable (§4.7.8) и в
Атрибут LocalVariableTable (§4.7.9). «
Это, вероятно, будет работать очень хорошо, если вы сохранили данные в базе данных или в файле (который действительно должен быть таким, каким вы это делаете, это действительно неуклюже делать это в исходном файле Java), который вы загружаете - обратите внимание, что вы можете столкнуться с пределом 65536 байт, даже если ваш код занимает меньше, чем столько байтов, потому что именно таким образом он хранит его внутренне, вы сталкиваетесь.
Вы можете убедиться, что это так, если вы измените свой код на:
public static final Names[] DB = new Names[]{
new Names("Albert","Person"),
new Names("Bobby","Animal")};
И запустите его с этим (удалив остальное).