我编写了一个简单的库,用户在其中扩展我的一个抽象类,然后将该类传递给我的一个函数。
//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
我希望能够返回用户使用第 139 行的函数 batch_set_relationship() 提供的类
举个例子,如果有人跑 here on line 88如何向用户传递所提供的自定义类的数组。
有人可以澄清为什么转换为不同类型的数组失败。
最佳答案
回应上述评论:
I would just return the Robot[] array and cast each element of that array.
正如我之前所说,转换到什么? 为什么?用户函数的返回类型应该是Robot[]。用户将 Robot 子类化以执行他们需要执行的操作,并返回包含其子类实例的 Robot[]。您的代码不需要知道子类是什么;这就是多态性的全部要点。
关于Java 数组转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462656/