Я кодирую приложение Java, которое читает файл .MID и генерирует .java (который при компиляции и исполнении генерирует WAV-файл), однако, сгенерированный .java-файл cointains очень большой метод конструктора, поэтому сгенерированный код не будет компилироваться. Я знаю максимальный размер 64kb для каждого метода, но есть ли способ его изменить? Благодаря!Ошибка: слишком большой код в сгенерированном файле Java
ответ
Просто сделайте свое приложение разбитым конструктором на несколько методов - то есть конструктор вызывает несколько небольших методов для выполнения своей работы. Это также облегчает отладку, поскольку исправление ошибок, разбросанных по методам, по одному методу за раз, скорее, является частью куска торта, а не имеет дело с огромным, сломанным методом.
Вот пример метода (не обязательно конструктор, на самом деле вы можете разбить все методы) разбиваются на более мелкие методы:
public int doLotsOfStuff(String arg0, int arg1, boolean arg2, BiFunction<Boolean, String, Integer> arg3){
arg0 = reverse(arg0);
foo(arg1, arg2);
return bar(arg0, Integer.valueOf(arg1), arg2, arg3);
}
String reverse(String arg0){
StringBuilder foobar = new StringBuilder(arg0);
foobar.reverse();
return foobar.toString();
}
void foo(int arg0, boolean arg1){
System.out.println(arg1 ? ~arg0 : arg0);
}
<A, B> int bar(String arg0, A arg1, B arg2, BiFunction<B, String, A> arg3){
return String.valueOf(arg3.apply(arg2, arg1)).concat(arg0).hashCode();
}
В несвязанной точке, может ли все ** не ** расспрашивать об общей здравомыслие вещей 'doLotsOfStuff'? – dorukayhan
Я тестировал несколько MIDI-мониторов, чтобы увидеть, работает ли это. Это действительно работает. Я попробую изменить приложение, чтобы разбить созданные методы, как это, спасибо! –
Есть ли у вас какие-либо основания для генерации Java-файл ? – MCMastery
Разве вы не можете разбить его на несколько файлов? – GreenThor
Просто делайте это как упражнение, чтобы лучше узнать о Java Sound MCMastery. Я пробовал с некоторыми меньшими MIDI-файлами, чтобы увидеть, работает ли это, и это работает. Теперь это будет разделено на более мелкие методы, такие как дорукайхан. –