在Java中传递自定义对象

时间:2012-09-16 05:04:54

标签: java

我知道这可能是非常基本的,而且我不知道如何做到这一点感到羞耻(更糟糕的是,在搜索解决方案时没有成功)。

如何将 thing 类型的对象从A传递给C?

public class A extends B {

}

public class B {

    public class thing {

    }

}

public class C extends JFrame {

}

我可以访问A中的 thing ,因为我正在扩展B,但是在使用C类时我无法扩展B,因为我需要扩展JFrame。

修改

抱歉模糊不清。 A类有一组 thing 类型的对象,我想迭代C类中的那些对象。

编辑2

当然......显而易见的选择。让 thing 成为自己的类...... :(

为那些可能也有类似问题的人承认羞耻。

3 个答案:

答案 0 :(得分:4)

首先,如果它是一个内部类 - 你可能不应该从外部访问它...
但是,如果你坚持,你可以尝试做如下:

public class A extends B {

}

public class B {

    public class thing {

    }

    private thing mything = new thing();
    public thing getThing(){
      return mything;
    }

}

public class C extends JFrame {
      A a = new A();
      Object thing = a.getThing();
}

答案 1 :(得分:0)

从外部访问内部类通常是一个坏主意,但如果你必须建议查看代理设计模式,如本文所述:

delegate design pattern

答案 2 :(得分:0)

您可能尝试使用java中无法实现的多重继承! 您可以使用接口来实现2种不同的行为或使用某些设计模式 实现这样的目标。

目前还不清楚你要做什么。但是看到复合或工厂方法模式 我认为这可能有所帮助。