在没有 Java 反射的情况下进行深度对象克隆的可能性是什么?我使用了使用反射的对象克隆库,但 AppEngine 不允许这样做。
所以我现有的与 Tomcat 一起工作的应用程序不起作用。
更新:
推土机库似乎是最好的选择:
Mapper mapper = new DozerBeanMapper();
DestinationObject destObject = mapper.map(sourceObject, DestinationObject.class);
问题是,如果我不需要自定义映射,我可以按原样执行上述操作吗?
例如:
Cat cat = new Cat();
Mapper mapper = new DozerBeanMapper();
Cat newCat = mapper.map(cat, Cat.class);
更新:
当我使用 Dozer 运行我的应用程序时,出现此错误:
Caused by: java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.contains(Ljava/lang/String;Ljava/lang/String;)Z
at org.dozer.util.ResourceLoader.getResource(ResourceLoader.java:53)
at org.dozer.util.DefaultClassLoader.loadResource(DefaultClassLoader.java:44)
at org.dozer.config.GlobalSettings.loadGlobalSettings(GlobalSettings.java:116)
at org.dozer.config.GlobalSettings.<init>(GlobalSettings.java:67)
at org.dozer.config.GlobalSettings.<clinit>(GlobalSettings.java:46)
看起来我错过了一些东西,虽然我使用 Maven 添加了推土机。