对接第三方接口,根据接口文档(Word表格) 快速定义对象。使用直接将表格中的字段描述复制过来,放在main方法中的str中,并根据表格特性进行微调代码!
import org.apache.commons.lang3.StringUtils;
public class ThirdVOUtil {
public static void main(String[] args) {
String str = "";
new ThirdVOUtil().printlnFieldds(str);
}
private void printlnFieldds(String str) {
StringBuilder sb = new StringBuilder();
String[] array = str.split("\n");
int index = 0;
String realLine = "";
for (int i = 0; i < array.length; i++) {
String line = array[i];
if (StringUtils.isEmpty(line)) {
continue;
}
realLine += line + "\n";
if (canPrintLine(array, i)) {
sb.append(transferLine2Field(realLine, index++));
realLine = "";
sb.append("\n\n");
}
}
System.out.println(sb);
}
private boolean canPrintLine(String[] array, int i) {
if (i + 1 == array.length) {
return true;
}
String line = array[i + 1];
String[] lineArray = line.split("\t");
if (lineArray.length < 3) return false;
return line.charAt(0) <= 'z' && line.charAt(0) >= 'a';
}
private String transferLine2Field(String line, int index) {
String template = " /**" +
" *" +
" * 描述:{descp}" +
" */\n" +
" private {fieldType} {reqField};";
String[] array = line.split("\t");
String result = template;
result = result.replace("{reqField}", array[0]);
// result=result.replace("{fieldType}",array[1]);
// result=result.replace("{是否必選}",array[2]);
result = result.replace("{descp}", array[3].replace("\n", ";"));
String fieldType = "String";
result = result.replace("{fieldType}", fieldType);
int end = array[1].length();
try {
String length = array[1].substring("String(".length(), end - 1);
result = result.replace("{length}", length);
result = result.replace("{lengthDesc}", length);
} catch (Exception e) {
result = result.replace("{length}", "Integer.MAX_VALUE");
result = result.replace("{lengthDesc}", array[1]);
}
String required = array[2];
String requiredDesc = null;
boolean requiredBool = false;
if ("M".equals(required)) {
requiredDesc = "必填";
requiredBool = true;
} else if ("O".equals(required)) {
requiredDesc = "选填";
}else if ("是".equals(array[1])) {
requiredDesc = "必填";
requiredBool = true;
} else if ("否".equals(array[1])) {
requiredDesc = "選填";
}
result = result.replace("{是否必選}", requiredBool + "");
result = result.replace("{requiredDesc}", requiredDesc);
result = result.replace("{index}", index + "");
return result;
}
private String getFieldName(String reqField) {
String[] array = reqField.split("(-)|(_)");
StringBuilder sb = new StringBuilder();
boolean first = true;
for (String s : array) {
String ss = s.toLowerCase();
if (first) {
sb.append(ss);
first = false;
} else {
sb.append(ss.substring(0, 1).toUpperCase() + ss.substring(1));
}
}
return sb.toString();
}
}