我已经编写了将对象转换为所需类型的代码。如果所需的类型是自定义类对象并且它有另一个对象,我们需要递归地转换它。顺便说一句:如果输入是 hashMap,我会知道我需要构造一个对象。如果在 HashMap 中,如果存在另一个 hashMap,那么我需要了解它的对象在对象中。我需要从内部 hashMap 构建内部对象。为了构建它,我将递归调用该方法。我在这里描述的代码。但是这 2 个类 Castor 和 MyBuilder 都变成了循环。我不知道如何打破它。如果方法不是循环的,我们可以打破依赖。但是对于循环,任何人都可以提供帮助吗?我可以引入任何模式或如何重构它?
提前致谢。
代码是这样的:为了更快地访问循环 pl,请参阅:returnValue castPrimitive( .... and void setParameterToEntity.....
MyBuilder myBuilder = new MyBuilder();
class Castor {
public Object castToRequiredType( Type type, Object object) {
String typeString = type.toString();
Object returnValue = null;
if (myUtils.isTypePrimitive(typeString)) {
returnValue = castPrimitive(object.toString(), typeString);
}else if {
// some conditions and some casting logic.
}
else {
returnValue = myBuilder.buildCustomObject(this,typeString, object);
}
return returnValue;
}
// other methods which call castToRequiredType() recursively.
}
class MyBuilder{
buildCustomObject(Castor castor,
String classOfType, Object object){
Class<?> loadedClass = myUtils.loadClass(classOfType);
instance = loadedClass.newInstance();
HashMap<?, ?> myMap;
List<Method> declaredMethods = myUtils.getMethodsForClass(loadedClass);
for (Method method : declaredMethods) {
if (object instanceof HashMap<?, ?>) {
myMap = (HashMap<?, ?>) object;
// ITERATE THROUGH MAP AND CALL THE SET PARAMETER TO ENTITY METHOD.
}
}
}
return instance;
}
void setParameterToEntity(Castor caster,
Object instance, Method method, Object value) {
ype[] parameterTypes = method.getGenericParameterTypes();
Object castedValue = caster.castToRequiredType(
parameterTypes[0], value);
}
} }