标签:type-conversion converter arrays java design-patterns
我有以下情况:
A类和B类具有完全相同的源代码.
我有一个来自A的数组,并且必须将其转换为来自B的数组,以便将其作为参数传递给类型为B的方法中的参数.
A[] foo = new A[] ;
//here getBar in certain situations accepts B[], but foo is always A[]
bar = BarFactory.getBar(foo);
我知道这是一个奇怪的场景,但是我正在为现有的基础架构编写某种适配器,其架构确实很奇怪,我看不出有任何办法可以避免这种转换.我不能更改B的来源,也不能对B进行任何硬引用.我也不能对A做其他方法,因为它必须是B的精确副本.
进行转换的最佳方法是什么?是否存在某种用于创建Converter类的模式或类似的模式?
我知道这个问题听起来很愚蠢,但请不要“杀死”我.我只是想以最好的方式做到这一点.
解决方法:
这可能取决于A和B的复杂程度,但是由于您肯定代码是相同的,因此将对象A的所有属性复制到新对象B会产生预期的结果.
Apache有一个项目commons-beanutils可以帮助您完成此任务:
BeanUtils.copyProperties(foo[i], newFoo[i]);
标签:type-conversion,converter,arrays,java,design-patterns 来源: https://codeday.me/bug/20191119/2038658.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。