java codeformatter抛出NullPointerEception

标签 java eclipse eclipse-jdt

我有一个java代码可以以编程方式格式化另一个java代码。 该代码对于简单的 java 代码运行良好。但是当我在输入 java 代码中引入 commnent(输入作为字符串代码)时,然后在下一行中,textEdit 将返回为 null,这会在后续步骤中导致 nullpointerexception。

TextEdit textEdit = codeFormatter.format(CodeFormatter.K_UNKNOWN , code, 0, code.length(), 0, null);


import org.eclipse.jdt.core.ToolFactory;
import org.eclipse.jdt.core.formatter.CodeFormatter;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.text.edits.MalformedTreeException;
import org.eclipse.text.edits.TextEdit;

public class FormatCode {

    public static void main(String[] args) {
        String code = "public class TestFormatter{public static void main(String[] args){for(i=0;i<10;i++){i=i+2;\\abc"+"}System.out.println(\"Hello World\");}}";
        CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(null);

        TextEdit textEdit = codeFormatter.format(CodeFormatter.K_UNKNOWN , code, 0, code.length(), 0, null);
        IDocument doc = new Document(code);
        try {
            textEdit.apply(doc);
            System.out.println(doc.get());
        } catch (MalformedTreeException e) {
            e.printStackTrace();
        } catch (BadLocationException e) {
            e.printStackTrace();
        }
    }
}

解决此问题的任何提示。

最佳答案

在新行中使用注释。 // 注释在一行中使用,因此您的代码就像这样。

换句话说,要解决此问题,请创建 /* 注释。

关于java codeformatter抛出NullPointerEception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981713/

相关文章:

java - Java 中的 boolean 和 if/else 语句帮助

Java DOM/AST - 为什么 MethodInspiration 是一个表达式?

eclipse - Eclipse 在 Mac OS X 上使用的默认字体是什么?

java - Eclipse 项目上的多个 JDBC 文件

java - Tomcat 无法在 Eclipse 中启动 - java.net.BindException : Address already in use

java - Eclipse Helios 忽略断点

java - 更改自动生成的主要方法的 Eclipse 模板?

java - 将 android studio 更新到 4.2 Beta1 后,Gradle 构建失败

java - 为什么编译器会发出这个 "Potential null pointer access"警告?

java - Joda Time - 月份的日期和年份的月份不返回 2 位数字输出