2010-12-16 134 views
0

我写了一个简单的库,其中用户扩展了我的一个抽象类,然后将该类传递给我的一个函数。Java铸造阵列

//user class 
class My_robot extends Robot{ 
} 

//My library function 
function Robot_maker("path.to.My_robot") 

机器人制造商功能然后创建一个Robot[]类型的数组。然后,用户可以在阵列通过调用我的函数Robot[]get_robot_army()

我知道我可以通过元素铸就Robot[]数组元素,但有没有办法施展整个数组一次另一个归还给他们? (我想从最终用户摘要)

有没有办法使用反射来改变函数的返回类型?

/////////////////////////////需要澄清一些/////////// ////////////////
The code in question is the function batch_result() on line 124
我希望能够返回该用户使用该功能batch_set_relationship()上线139
作为一个例子所提供的类如果有人跑 here on line 88我怎么能传递给用户提供的自定义提供的类的数组。

也可以有人澄清为什么转换为不同类型的数组失败。你能想到

+4

这看起来不是Java。 ('function'?) – 2010-12-16 15:57:19

+4

这是您在**八月**期间在StackOverflow上的** 27th **问题。从长远来看,您已经学会了如何正确格式化代码,以便其他人不必为您清理代码。 – 2010-12-16 15:57:51

+0

>我知道我可以通过元素投射Robot []数组元素,但有没有办法一次投射整个数组? 什么,从什么,为什么? – Mud 2010-12-16 15:59:37

回答

0

的一种方式,加上完整的阵列到列表或任何收集和发送作为返回类型

这样,你就可以实现返回类型的铸件。

通过反射类,你不能改变类的类型,但你可以defnitely动态获取类的类型,那么以后你需要modofy类的类型,以满足您的要求

+0

我明白你的意思。我同意。后来的部分是我试图想出疯狂的方式来隐藏最终用户。 – Prospero 2010-12-16 16:19:49

1

回应上述评论:

我只会返回Robot []数组并转换该数组的每个元素。

正如我前面所说的,铸要什么?而为什么?用户功能的返回类型应该是Robot []。用户子类Robot完成他们需要做的事情,并返回包含其子类实例的Robot []。你的代码不需要知道子类是什么;那就是多态性的整个