广告:
信号屏蔽器:守护你的数字生活,为你带来宁静与专注
开发者做不喜欢做的就是写文档,现在大环境这么卷,后端一般都会写点文档,希望这个工具可以帮到您
根据实体类生产markdown文档表格
/**
* 根据基础类生成markdown文本
*
* @param filePath 实体类文件地址
*/
public static void createMarkdown(String filePath) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(filePath));
String line;
int lineNUm = 0;
List<List<String>> result = new ArrayList<>();
while ((line = reader.readLine()) != null) {
List<String> field = new ArrayList<>();
// 处理每一行的内容
if (line.contains("/**") && !line.contains("************************")) {
if (lineNUm == 0) {
lineNUm++;
continue;
}
line = reader.readLine();
String annotation = line.replaceAll("\\*", "");
annotation = annotation.replaceAll(" ", "");
line = reader.readLine();
line = reader.readLine();
line = reader.readLine();
if (line.contains("DateTimeFormat") || line.contains("JsonFormat")) {
line = reader.readLine();
}
if (line.contains("DateTimeFormat") || line.contains("JsonFormat") || line.contains("TableField")) {
line = reader.readLine();
}
if (line.equals("")) {
line = reader.readLine();
}
String[] s = line.split(" ");
lineNUm++;
if (lineNUm == 38) {
System.out.println(11);
}
String type = s[5];
String columnName = s[6];
field.add(columnName.replaceAll(";", ""));
field.add(type);
field.add(annotation);
result.add(field);
System.out.println(lineNUm);
}
}
// System.out.println(result);
//|CAppTyp |String |保单类型 ||'A' 投保单,<br>'E'批改申请单,<br>'Q'报价单,<br>'O'开口保单|
List<String> markDown = new ArrayList<>();
for (List<String> strings : result) {
StringBuilder stringBuilder = new StringBuilder();
for (String string : strings) {
stringBuilder.append("|").append(string);
}
stringBuilder.append("|");
stringBuilder.append(" | ||");
markDown.add(stringBuilder.toString());
}
for (String s : markDown) {
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
或者//类型的注释
/**
* 根据//类型注释的实体类生成markdown文本
*
* @param filePath 实体类文件地址
*/
public static void createMarkdown2(String filePath) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(filePath));
String line;
int lineNUm = 0;
List<List<String>> result = new ArrayList<>();
while ((line = reader.readLine()) != null) {
List<String> field = new ArrayList<>();
// 处理每一行的内容
if (line.contains("TableField") && !line.contains("c_id")) {
if (lineNUm == 0) {
lineNUm++;
continue;
}
line = reader.readLine();
String annotation = line.replaceAll("//", "");
annotation = annotation.replaceAll(" ", "");
line = reader.readLine();
if (line.equals("")) {
line = reader.readLine();
}
String[] s = line.split(" ");
lineNUm++;
String type = s[1];
String columnName = s[2];
field.add(columnName.replaceAll(";", ""));
field.add(type);
field.add(annotation);
result.add(field);
}
}
// System.out.println(result);
//|CAppTyp |String |保单类型 ||'A' 投保单,<br>'E'批改申请单,<br>'Q'报价单,<br>'O'开口保单|
List<String> markDown = new ArrayList<>();
for (List<String> strings : result) {
StringBuilder stringBuilder = new StringBuilder();
for (String string : strings) {
stringBuilder.append("|").append(string);
}
stringBuilder.append("|");
stringBuilder.append(" | |是|");
markDown.add(stringBuilder.toString());
}
for (String s : markDown) {
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
源自 sz-sstx.com