У меня есть один java-код для форматирования другого java-кода programaticlly. Код работает отлично для простого java-кода. Но когда я вношу commnent в свой код ввода java (ввод принят как код String), то в следующей строке textEdit возвращается как null, который вызывает появление nullpointerexception в следующих шагах.java codeformatter throwing NullPointerEception
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();
}
}
}
Любой намек на решение этой проблемы.
Покажите нам трассировку стека NPE –
Вы инициализируете кодFormatter с 'null', это правильно? – ha9u63ar
Я взял код с ответа этого сообщения: http: //stackoverflow.com/questions/16015240/formatting-source-code-programmatically-with-jdt –