【发布时间】:2022-01-28 06:32:51
【问题描述】:
我正在使用具有以下依赖项的 JavaParser:
<dependency>
<groupId>com.github.javaparser</groupId>
<artifactId>javaparser-core</artifactId>
<version>3.24.0</version>
</dependency>
当我尝试将它与以下类一起使用时(解析自身)...
import com.github.javaparser.JavaParser;
import com.github.javaparser.ParseResult;
import com.github.javaparser.ast.CompilationUnit;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
/**
* Some comment.
*/
public class JavaParserPlayground {
public static void main(String[] args) throws IOException {
// Some comment.
String source = Files.readString(Paths.get("path\\JavaParserPlayground.java"),
StandardCharsets.UTF_8);
// Some comment.
JavaParser parser = new JavaParser();
ParseResult<CompilationUnit> parseResult = parser.parse(source);
// Some comment.
CompilationUnit unit = parseResult.getResult().orElseThrow();
System.out.println(unit.toString());
}
}
...然后我得到以下结果:
import com.github.javaparser.JavaParser;
import com.github.javaparser.ParseResult;
import com.github.javaparser.ast.CompilationUnit;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
/**
* Some comment.
*/
public class JavaParserPlayground {
public static void main(String[] args) throws IOException {
// Some comment.
String source = Files.readString(Paths.get("path\\JavaParserPlayground.java"), StandardCharsets.UTF_8);
// Some comment.
JavaParser parser = new JavaParser();
ParseResult<CompilationUnit> parseResult = parser.parse(source);
// Some comment.
CompilationUnit unit = parseResult.getResult().orElseThrow();
System.out.println(unit.toString());
}
}
我的问题是我需要带有所有原始换行符的原始输出。但它会删除一些空行(在 import 语句之间,方法内),删除换行符(在源分配内)和 adss 空行(在 main 方法之前)。
更多:原始来源有 2 个空格缩进,打印的来源有 4 个空格。
可以强制原代码结构吗?
【问题讨论】:
标签: java parsing javaparser