将对象[]转换为另一种类型

时间:2017-01-14 18:42:37

标签: java reflection javabeans cloning

我有A类和B类,其中B类只需要来自A的10个属性中的5个。

所以我有类似的东西,

A[] objArray = populateResponse();

要把它投入B,我会做类似

的事情

for (A : objArray ){ // getters here and push it to B obj array manually }

任何其他建议以更好的方式做到这一点,因为A有很多字段和数组的大小可以变大吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果B扩展或实现A,则抛弃。

否则 - 你不能这样做。您将获得ClassCastException

如果两个类没有关联,你仍然想这样做,你应该让它们相关。创建一个他们将实现的接口并传递对该接口的引用。但是,这仍然不允许你将A转换为B.

如果您担心A的实例太多,您可以转换为B.编写一个函数,该函数接受A的实例并从中创建B的实例,并且失去了A实例。