Какая библиотека/программа может использоваться для генерации Байт-кода Java? [закрытый]

Вам не нужно использовать INDIRECT из MID, если вы можете использовать некоторые механизмы блокировки:

=FIND("site",$G1)>0

enter image description here

Здесь вы увидите, что активная ячейка - это A1, поэтому соответствующая строка Excel будет сравнивать ее с G1, когда условное форматирование смотрит на ячейку A2, она будет сравнивать ее с G2.

Когда условное форматирование смотрит на ячейку B2, оно снова сравнивает ее с G2, потому что G была заблокирована (через символ $).


Тем не менее, ваша формула не работает, потому что FIND("site","g"&ROW(),1) не работает. Второй аргумент дает текст g# (где # представляет номер строки), и поиск не удается).

15
задан Mnementh 14 November 2008 в 21:38
поделиться

7 ответов

ASM

http://asm.objectweb.org/

Это намного быстрее, чем BCEL и поддерживает дженерики и аннотации. Одна точка о ее архитектуре: чтобы удостовериться, что высокопроизводительный ASM создается вокруг синтаксического анализатора, который бросает события (в отличие от BCEL, где синтаксический анализатор создает структуру данных). Это несколько подобно различию между SAX и синтаксическими анализаторами DOM. Требуется некоторая практика для привыкания к этому виду взглядов.

РЕДАКТИРОВАНИЕ (После комментария McDowell): Действительно посетители в большой степени используются в ASM, но это - больше, чем простые посетители: посещаемая структура данных лениво создается синтаксическим анализатором, поэтому если Вы не интересуетесь определенными частями classfile (например, Вы хотите знать названия методов, но Вы не заботитесь об их теле), можно возвратить пустой указатель из visitMethod () метод. Это заставит синтаксический анализатор пропустить разделы тела метода, таким образом, предотвращающие (дорогую) конструкцию сети объектов, полностью описывающих метод.

19
ответ дан 1 December 2019 в 03:25
поделиться

Существует довольно полный пример использования ASM, чтобы сгенерировать код байта с подобного Java промежуточного языка в реализации CAL (подобный Haskell язык для JVM). При загрузке источников по http://openquark.org/Open_Quark/Download.html затем, можно найти код в AsmJavaByteCodeGenerator.java и классы модели Java в той же папке. Сгенерированный код в основном, что javac сделал бы минус аннотации отладки.

Реализация CAL первоначально использовала BCEL, но переключилась на ASM, потому что ASM был значительно быстрее (вероятно, порядок величины), и так же, как значительно, ASM ориентирован на многопотоковое исполнение, так, чтобы параллельная компиляция была возможна, который необходим CAL.

4
ответ дан 1 December 2019 в 03:25
поделиться

Javassist и cglib являются двумя хорошими библиотеками разработки байт-кода. Они используются экстенсивно в Java мир EE для генерации прокси объектов во времени выполнения. Будьте в спящем режиме и Spring две ведущих платформы, использующие эти библиотеки.

2
ответ дан 1 December 2019 в 03:25
поделиться

Существуют технологии как asm и cglib, но я рекомендую Javaassist, потому что это - очень хорошая библиотека для этого, и можно найти примеры в tapestry5 платформе.

1
ответ дан 1 December 2019 в 03:25
поделиться

Почему бы не использовать компилятор Java, javac? Что случилось с использованием его, чтобы сгенерировать код байта JVM?

[Серьезно. Что мешает Вам брать Ваш источник, делая Java и компилируя его?]

-3
ответ дан 1 December 2019 в 03:25
поделиться

Я думаю, что моего любимого создателя байт-кода Java называют javac, и можно найти его по www.sun.com

-2
ответ дан 1 December 2019 в 03:25
поделиться

http://serp.sourceforge.net/ - отличная библиотека для большей абстракции при редактировании байт-кода.

1
ответ дан 1 December 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: