0

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

在另一个类 Toroid 中,我持有当前类型为 Agent[][] 的多维数组(嗯,嵌套数组,这是 java)。我想要做的是在 Toroid 的构造函数中采用实现代理的特定类型的对象,并将数组声明/初始化为该特定类型的代理,以便我可以访问 ClassAgent 中的特定方法未在代理中声明。谁能指导我如何去做?

其次,我有方法以列表形式返回该多维数组的较小部分。像数组一样,当前有一个返回类型的代理。有没有办法使返回类型特定于 Array 所持有的 Agent 类型?

4

1 回答 1

0

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

你可以使用类似的东西

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 只是一个代理。如果您想使用特定的方法,您将需要转换对象。

有没有办法使返回类型特定于 Array 所持有的 Agent 类型?

你可以退货A[]

于 2012-08-09T18:07:56.750 回答