字段展示
代码(只写了一些初步的东西,请见谅,到时候会将一些东西抽出来的):
public class ReflectClass {
public static void main(String[] args) {
new ReflectClass().getField(PreCaseInfo.class);
}
public void getField(Class <?> MyClass){
Field[] declaredFields = MyClass.getDeclaredFields();
for (Field field:declaredFields){
String line="|";
/*System.out.println(field.);*/
if (field.isAnnotationPresent(Column.class)){
Column annotation = field.getAnnotation(Column.class);
try {
if (null!=annotation.name()){
line+=annotation.name()+"|";
if(field.isAnnotationPresent(NotNull.class)){
NotNull annotation1 = field.getAnnotation(NotNull.class);
Class<?>[] groups = annotation1.groups();
boolean isInsert=false;//是否必填的开关
for (Class <?> group:groups){
String className=group.getName();
if (className.contains("Insert")){
isInsert=true;
}
}
if(isInsert){
line+="插入必填|";
}else {
line+="|";
}
}else {
line+="|";
}
line+=field.getType().getName().substring(field.getType().getName().lastIndexOf(".")+1)+"|";
if(field.isAnnotationPresent(ApiModelProperty.class)){
ApiModelProperty annotation1 = field.getAnnotation(ApiModelProperty.class);
line+=annotation1.value()+"|";
}else {
line+="|";
}
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(line);
}
}
}
}
结果展示:
|BH||String||
|ZYRYBH||String||
|TARYBH||String|同案人员|
|TARYXM||String|同案人员姓名|
|AJXZ||String|案件性质|
|CYLXBH|插入必填|String||
|CYGLLXBH|插入必填|String|人员管理类别id|
|JSH||String|监室号|
|FH||String|番号|
|WZ||Integer|位置|
|SFZAF|插入必填|Integer|是否重刑犯(0--false,1--true)|
|RSQBXBH|插入必填|String| 入所前表现id,逗号分割|
|RSQBX||String| 入所前表现,逗号分割|
|ZDFS|插入必填|Integer| 字典分数|
|WXDJBH|插入必填|String| 危险等级编号|
|WXDJ||String| 危险等级|
|ZHBX|插入必填|String| 风险等级|
|JBQK||String||
|JKZK||String| 健康状况|
|RSYY|插入必填|String| 入所原因id|
|SYPZBH||String| 收押凭证编号|