При рефакторинге классов и методов, почему JDT не меняет ссылочные ресурсы? - PullRequest
0 голосов
/ 24 февраля 2012

При рефакторинге классов и методов JDT не изменяет ссылочные ресурсы, а при рефакторинге пакетов.Я использую следующий код:

RefactoringContribution contrib = RefactoringCore.getRefactoringContribution(IJavaRefactorings.RENAME_COMPILATION_UNIT);
RenameJavaElementDescriptor desc =  (RenameJavaElementDescriptor)contrib.createDescriptor();
desc.setUpdateReferences(true);
desc.setJavaElement(classToRename);
desc.setNewName(newName);
Refactoring ref = desc.createRefactoring(new RefactoringStatus());
IProgressMonitor monitor = new NullProgressMonitor();
Change change = refactoring.createChange(monitor);
change.perform(monitor); 

совет поможет:

1 Ответ

0 голосов
/ 20 марта 2012

Ну, я тщательно исследовал JDT и пришел к следующему выводу:

  1. Текущий JDT API имеет этот максимальный потенциал в отношении классов и методы
  2. Трудно изменить ссылки в случае классов и методы, потому что они не ссылаются как пакеты, т.е. my.package.util легко, когда MyClass не имеет ссылки и может быть присутствует в более чем одной упаковке.

Но это можно сделать, используя известные java-фреймворки, такие как spring , hibernate * iBatis * файлы ресурсов, если JDT разработчики дадут некоторое время это, но это все еще будет много работы и времени. Решение состоит в том, чтобы реорганизовать себя через потоки ввода-вывода, поместив условия замены / изменения, но также это будет большая работа.

...