Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java铸造阵列_Java_Arrays_Reflection_Casting - Fatal编程技术网

Java铸造阵列

Java铸造阵列,java,arrays,reflection,casting,Java,Arrays,Reflection,Casting,我编写了一个简单的库,其中用户扩展了我的一个抽象类,然后将该类传递给我的一个函数 //user class class My_robot extends Robot{ } //My library function function Robot_maker("path.to.My_robot") robot maker函数然后创建类型为robot[]的数组。然后,用户可以通过调用我的另一个函数Robot[]get\u Robot\u army() 我知道我可以逐个元素投射Robot[]数组元

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

//user class
class My_robot extends Robot{
}

//My library function
function Robot_maker("path.to.My_robot")
robot maker函数然后创建类型为
robot[]
的数组。然后,用户可以通过调用我的另一个函数
Robot[]
get\u Robot\u army()

我知道我可以逐个元素投射
Robot[]
数组元素,但是有没有一种方法可以一次性投射整个数组?(我想把它从最终用户那里抽象出来)

有没有一种方法可以使用反射来更改函数的返回类型

/////////////////////////////有必要澄清一下///////////////////////////

我希望能够返回用户在第139行使用函数batch_set_relationship()提供的类
例如,如果有人运行,我如何向用户传递所提供的自定义类的数组


还有人可以澄清为什么对不同类型的数组进行强制转换失败。

您可以这样想,将完整的数组添加到列表或任何集合中,并将其作为返回类型发送

这样就可以实现返回类型的转换


使用reflection类,您无法更改类类型,但您可以灵活地动态获取类类型,然后您需要修改类类型以满足您的要求

响应上面的注释:

我将返回Robot[]数组,并对该数组的每个元素进行强制转换


就像我之前说的,投什么?为什么?用户函数的返回类型应为Robot[]。用户对Robot进行子分类,以完成他们需要做的事情,并返回Robot[],其中包含其子类的实例。您的代码不需要知道子类是什么;这就是多态性的全部要点。

这似乎不是Java。(
函数
?)这是您在八个月的时间里关于StackOverflow的第27个问题。恕我直言,您学习如何正确格式化代码以使其他人不必为您清理代码的时间已经过去了。>我知道我可以逐个元素强制转换Robot[]数组元素,但有没有一种方法可以一次性强制转换整个数组?从什么,从什么,为什么?不清楚你想在这里做什么。(而且,语法看起来不太像java)。所以你有一个方法,返回一个机器人元素数组。你需要投在哪里?在这里,我想象你只想公开抽象机器人类型(用于创建和检索)。我也写不出一点JS。我明白你的意思。我同意。后来的部分是我试图想出一些疯狂的方法来躲避最终用户。