我已经编写代码来将对象转换为所需的类型。如果所需的类型是一个自定义类对象,并且它有另一个对象,我们需要递归地进行转换。顺便说一句:我会知道,如果输入是一个哈希映射,我需要构造一个对象。如果在HashMap中,如果另一个HashMap存在,那么我需要理解它在对象内部的对象。而内部对象我需要从内部hashMap构建。为了构建它,我将递归地调用该方法。我在这里描述的代码。但是这两个类Castor和MyBuilder都成了循环。我没有得到如何打破它。如果方法不循环,我们可以打破依赖关系。但随着周期可以帮助吗? 我可以引入任何模式,或者我可以如何重构这个模式?如何在方法递归时重构以避免循环依赖?
在此先感谢。
代码是这样的: 对于循环更快地访问PL是指:的returnValue castPrimitive(....和无效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);
}
}}
如果memetech的答案是正确的,那么您应该将他标记为正确,而不是您自己。 – SJuan76
我没有说他的回答是正确的。我表示感谢您的帮助。谢谢你的评论SJuan :)如果你坚持,我会这么做:) –