- 前几天写逻辑的时候遇到一个需求,将存储拥有几十个字段名的实体类的list数组按字段顺序进行输出,使用的是依据字段名获取实体类的get方法,这个教程网上很多,但是将字段名按照String类型数组拿出我没有看到多少,于是自己做了一个,与大家分享一下。
import java.util.ArrayList;
/**
* @author
* @date 2019/1/10
*/
public class FieldUtil {
public ArrayList<String> getField(Class clazz) throws IllegalAccessException, InstantiationException {
//使用newInstance建立一个新对象
String[] split = clazz.newInstance().toString().split("=");
ArrayList<String> pojoField = new ArrayList<>();
//按,分割字符串
for (int i = 0;i<split.length;i++){
String[] split1 = split[i].split(",");
for (int j=0;j<split1.length;j++){
//将字符串中含有null值的字符串剔除
if(split1[j].indexOf("null")==-1){
//将字符串再进行清理
if(split1[j].indexOf("(")!=-1){
String[] split2 = split1[j].split("\\(");
split1[j]=split2[1];
}
if(split1[j].indexOf("{")!=-1){
String[] split2 = split1[j].split("\\{");
split1[j]=split2[1];
}
String replace = split1[j].replace(" ", "");
if(!replace.equals("")&&!replace.equals(" ")&&replace!=null
){
pojoField.add(replace);
}
}
}
}
return pojoField;
}
}