refactor[storage]: storage code refactoring

This commit is contained in:
godotg committed 2022-10-27 20:11:09 +08:00
1 parent 356a96f787
commit e1c547c9d6
23 files changed
+351 -316

No files matched your search

@@ -18,11 +18,12 @@ import com.zfoo.protocol.exception.RunException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.*;
import java.util.stream.Collectors;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author godotg
@@ -89,10 +90,7 @@ public abstract class ClassUtils {
// 必须要有一个空的构造器
ReflectionUtils.publicEmptyConstructor(clazz);
var filedList = Arrays.stream(clazz.getDeclaredFields())
.filter(it -> !Modifier.isTransient(it.getModifiers()))
.filter(it -> !Modifier.isStatic(it.getModifiers()))
.collect(Collectors.toList());
var filedList = ReflectionUtils.notStaticAndTransientFields(clazz);
for (var field : filedList) {
// 是一个基本类型变量
@@ -16,15 +16,19 @@ import com.zfoo.protocol.collection.ArrayUtils;
import com.zfoo.protocol.exception.RunException;
import com.zfoo.protocol.exception.UnknownException;
import java.beans.Transient;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
@@ -319,6 +323,14 @@ public abstract class ReflectionUtils {
}
}
// 获取class中的普通field属性字段
public static List<Field> notStaticAndTransientFields(Class<?> clazz) {
return Arrays.stream(clazz.getDeclaredFields())
.filter(it -> !Modifier.isStatic(it.getModifiers()))
.filter(it -> !Modifier.isTransient(it.getModifiers()))
.filter(it -> !it.isAnnotationPresent(Transient.class))
.collect(Collectors.toList());
}
public static String fieldToGetMethod(Class<?> clazz, Field field) {
var fieldName = field.getName();