[英]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.