繁体   English   中英

如何创建and抽象类的数组,以便可以将其初始化为特定的非抽象类(java)

[英]How can I create an array of and Abstract class such that I can initialize it to a specific non-abstract class (java)

我有一个抽象类Agent和一堆扩展它的类,如ModAgent,ClassAgent等。

在另一类磁环我保持目前类型Agent [] []的多维阵列(以及,嵌套阵列这之中的java)。 我想要做的是在Toroid的构造函数中采用实现Agent的特定类型的对象,并声明/初始化该数组为该特定类型的Agent,以便我可以访问ClassAgent中的特定方法没有在代理中声明。 谁能指导我该怎么做?

其次,我有一些方法返回该多维数组的较小部分作为列表。 与数组一样,当前具有代理的返回类型。 是否有办法使返回类型特定于数组所持有的代理类型?

我想要做的是在Toroid的构造函数中采用实现Agent的特定类型的对象,并声明/初始化该数组为该特定类型的Agent

您可以使用类似

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);

这样我就可以访问ClassAgent中未在代理中声明的特定方法。

您不能做,因为A只是一个Agent。 如果要使用单独的方法,则需要强制转换对象。

是否有办法使返回类型特定于数组所持有的代理类型?

您可以返回A[]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM