随机生成数工具(需要hutool依赖)
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.RandomUtil;
import java.util.ArrayList;
import java.util.List;
public class GenerateData{
public static String platformId = "ca2446434534665452";
public static String getUUID(){
return UUID.randomUUID().toString();
}
public static String getString(int length){
return RandomUtil.randomString(length);
}
public static int getInt(int min,int max){
return RandomUtil.randomInt(min,max);
}
public static double getDouble(int min,int max){
return RandomUtil.randomDouble(min,max);
}
public static List<String> getList(int size,int length){
List<String> result = new ArrayList<>(size);
int i = 0;
while (i < size){
result.add(getString(length));
i++;
}
return result;
}
}
自动填充对象类
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
public class fillObject {
public static Object fillObject(Class<?> clazz) throws IllegalAccessException, InstantiationException, ClassNotFoundException {
Object o = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields){
field.setAccessible(true);
String fieldName = field.getName();
if (fieldName.equals("platformId")){
field.set(o,GenerateData.platformId);
} else {
String typeName = field.getType().getName();
Object value = getValue(typeName);
if (value != null){
field.set(o,value);
} else if (typeName.contains("List")) {
List<Object> list = new ArrayList<>();
String genericTypeName = field.getGenericType().getTypeName();
Object value2 = getValue(genericTypeName);
if (value2 != null){
for (int i = 0; i < 10; i++){
list.add(getValue(genericTypeName));
}
}else {
String generatorTypeRoute = genericTypeName.substring(genericTypeName.indexOf("<") + 1,
genericTypeName.indexOf(">"));
for (int i = 0; i < 10; i++){
list.add(fillObject(Class.forName(generatorTypeRoute)));
}
}
field.set(o,list);
} else {
field.set(o,fillObject(Class.forName(typeName)));
}
}
}
return o;
}
private static Object getValue(String type){
if (type.contains("String")){
return GenerateData.getString(10);
} else if (type.contains("int") || type.contains("Integer")){
return GenerateData.getInt(0,100);
}else if (type.contains("long") || type.contains("Long") ){
return GenerateData.getInt(0,100);
}else if (type.contains("float") || type.contains("Float")){
return GenerateData.getDouble(0,100);
}else if (type.contains("double") || type.contains("Double")){
return GenerateData.getDouble(0,100);
}else {
return null;
}
}
public static void main(String[] args) throws IllegalAccessException, ClassNotFoundException, InstantiationException {
B b = (B) fillObject(B.class);
}
}
class A{
String a;
}
class B {
A a;
String cc;
List<A> listA;
List<String> listString;
}