如何创建抽象类和抽象类的数组,以便将其初始化为特定的非抽象类(java)
我有一个抽象类代理和一堆扩展它的类,ModAgent,ClassAgent等等 在另一个类Toroid中,我持有一个多维数组(嗯,嵌套数组,这是java),当前的类型为Agent[]。我希望能够在Toroid的构造函数中获取实现代理的特定类型的对象,并将数组声明/初始化为该特定类型的代理,这样我就可以访问ClassAgent中未在代理中声明的特定方法。有人能告诉我怎么做吗 其次,我有一些方法以列表的形式返回多维数组的较小部分。与数组一样,当前具有返回类型的代理。是否有办法使返回类型特定于数组所持有的代理类型 我希望能够在Toroid的构造函数中获取实现代理的特定类型的对象,并将数组声明/初始化为该特定类型的代理 你可以用像如何创建抽象类和抽象类的数组,以便将其初始化为特定的非抽象类(java),java,arrays,generics,multidimensional-array,abstract,Java,Arrays,Generics,Multidimensional Array,Abstract,我有一个抽象类代理和一堆扩展它的类,ModAgent,ClassAgent等等 在另一个类Toroid中,我持有一个多维数组(嗯,嵌套数组,这是java),当前的类型为Agent[]。我希望能够在Toroid的构造函数中获取实现代理的特定类型的对象,并将数组声明/初始化为该特定类型的代理,这样我就可以访问ClassAgent中未在代理中声明的特定方法。有人能告诉我怎么做吗 其次,我有一些方法以列表的形式返回多维数组的较小部分。与数组一样,当前具有返回类型的代理。是否有办法使返回类型特定于数组所持
public class Toroid <A extends Agent> {
private final A[][] agents;
public Toroid(Class<A> aClass) {
Class<A[]> aClassArray = (Class<A[]>) Array.newInstance(aClass, 0).getClass();
agents = (A[][]) Array.newInstance(aClassArray, 100);
公共类圆环体{
私人最终A[][]代理人;
公共环面(类aClass){
类aClassArray=(类)Array.newInstance(aClass,0.getClass();
agents=(A[][])Array.newInstance(aClassArray,100);
这样我就可以访问ClassAgent中未在agent中声明的特定方法
你不能这样做,因为A只是一个代理。如果你想使用单独的方法,你需要强制转换对象
是否有办法使返回类型特定于数组所持有的代理类型
你可以返回
A[]
与只返回Agent[]][]]
@newacct相比,创建A[][]
没有任何好处。我同意。这很复杂,但我怀疑它不会满足OP的要求。