Я использую javassist и генерирую интерфейсы и другие вещи во время загрузки / выполнения.
Чтобы вызвать метод интерфейса (с байт-кодом invokeinterface), мы должны предоставить несколько параметров: indexbyte1, indexbyte2, count и 0 (из http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc6.html).
Уже имея абстрактный метод (CtMethod), который я хочу вызвать, как рассчитать его количество?
Например, в http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc6.html они говорят, что " Операнд count инструкции invokeinterface записывает меру количества значений аргумента, где значение аргумента типа long или типа double добавляет две единицы к значение счетчика и аргумент любого другого типа составляют одну единицу. Эта информация также может быть получена из дескриптора выбранного метода. Избыточность является исторической."
Но также скажите, что " Операндом count является байт без знака, который не должен быть равен нулю. "
Если абстрактный метод, который я хочу вызвать, не имеет параметров, он будет иметь счет 0 !? Но count не может быть 0. Дескриптор метода - () V.
Есть предложения?