Как добавить / удалить атрибуты и методы? - PullRequest
1 голос
/ 06 ноября 2011

Я пытаюсь разработать систему, в которой пользователь должен иметь возможность вносить изменения [добавлять / удалять атрибуты и методы] в настоящий файл Java.Хотя API предоставляют методы для создания новых методов / полей, как мы можем удалить / уничтожить те, которые не требуются.

Я хочу создать метод

updatefile(file, newMethods, newAttributes)
  • file - это файл Java, который будет изменен, методы и атрибуты которого необходимо удалить.

  • newMethods теперь будут методами файла

  • newAttributes будут атрибутами файла

Также возможно, что некоторые записи newMethods == некоторые записи оригинальных методов, для которых мне потребуется проверка;аналогично для новых атрибутов.

Как это можно сделать?

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Вам нужна библиотека манипулирования байт-кодом.Проверьте следующее: bcel, cglib, asm, javassist.

Хотя я согласен с JBNizet, что требования выглядят немного странно.Уже есть мощные IDE, которые делают это, и конечные пользователи обычно не должны ограничивать структуру классов.

0 голосов
/ 06 ноября 2011

Ваша идея похожа на проект кузницы JBoss.

Я думаю, что возможность удаления методов должна основываться на сигнатуре метода Java, объявленной в спецификациях Java, и типе возвращаемого метода.

Например: methodRemove (File file, String returnType, String methodName, String [] methodParametersTypes) будет ссылаться на соответствующий метод для удаления в файле, если в файле только один класс.

...