Есть ли способ скопировать метод, включить однострочный комментарий и переименовать скопированный метод, я не могу обновJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ скопировать метод, включить однострочный комментарий и переименовать скопированный метод, я не могу обнов

Сообщение Anonymous »

Привет, я хочу скопировать метод, затем обновить имя скопированного метода и наконец вставить его в исходный файл
вот мой код

Код: Выделить всё

public static void main(String[] args) throws IOException, JavaModelException {
File f = new File("src/Address1.txt");
String filePath = f.getAbsolutePath();
String str = readFileToString(filePath);
final ASTParser parser = ASTParser.newParser(AST.JLS3);
final Document document = new Document(str);
parser.setSource(document.get().toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);

final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
final AST ast = cu.getAST();
ASTRewrite rewriter = ASTRewrite.create(ast);
cu.accept(new ASTVisitor() {
@Override
public boolean visit(MethodDeclaration node) {
String methodName = node.getName().getIdentifier();
if (methodName.equals("process")) {
System.out.println(methodName);
MethodDeclaration copiedMethod = (MethodDeclaration) rewriter.createCopyTarget(node);
copiedMethod.setName(ast.newSimpleName("process1"));
// MethodDeclaration copiedMethod = ASTNode.copySubtree(ast, node);
ASTNode parent = node.getParent();
ListRewrite listRewrite = rewriter.getListRewrite(parent, TypeDeclaration.BODY_DECLARATIONS_PROPERTY);
listRewrite.insertLast(copiedMethod, null);
}
return super.visit(node);
}
});
//document.set(Formatter.format(document.get()));
try {
rewriter.rewriteAST(document, null).apply(document);
System.out.println(document.get());
} catch (MalformedTreeException e) {
e.printStackTrace();
} catch (BadLocationException e) {
e.printStackTrace();
}
}
однако я обнаружил, что имя метода невозможно обновить
я попробовал другой способ копирования узла
ASTNode.copySubtree (ast, node);
работает, но однострочный комментарий не удалось скопировать
пожалуйста, скажите мне, в чем проблема, я просто хочу скопировать метод и измените имя метода, и скопированный метод включает однострочный комментарий, а не только код Java

Подробнее здесь: https://stackoverflow.com/questions/788 ... -the-copie
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему однострочный комментарий вызывает синтаксическую ошибку PHP?
    Гость » » в форуме Php
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость
  • OperationalError: в таблице. Комментарий не имеет названия данных с названием Data, вставляя комментарий в мою базу данн
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Hadoop Mapreduce не использует скопированный файл
    Anonymous » » в форуме JAVA
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous
  • Hadoop Mapreduce не использует скопированный файл
    Anonymous » » в форуме Python
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Hadoop Mapreduce не использует скопированный файл
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»