Java 数组转换

标签 java arrays reflection casting

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

//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/

相关文章:

c# - 如何查找(强类型)集合中包含的类型?

java - Introductions in Introductions in Aspect Oriented Programming中的@DeclareParents注解

arrays - 如何在 Kotlin 中将 String 数组转换为 Int 数组?

c# - 动态列出对象的内容

java - 在对象数组列表中搜索具有特定字段值的对象

android - 带有自定义 ArrayAdapter : Works fine, 的 ListView 直到我需要更改项目数?

Java 反射 : Invoking Setter and Getter method for collection type Object

java - java中最节省内存的 map

java - 为什么延迟堆栈跟踪没有平均值?

java - JDBI 可以绑定(bind)方法签名之外的附加值吗?