是否可以在Java中实现组合? 如果我们创建一个A类并在B类中使用该类的实例,那么我们如何确保A不能自己创建一个独立的对象呢?
答案 0 :(得分:2)
我认为不可能。唯一类似的解决方案是将A创建为B的私有内部类。然后B以外的其他人都不能实例化A。
答案 1 :(得分:1)
您可以将组合的类作为容器类的内部类。
class ContainerClass{
class ContainedClass1{
}
class ContainedClass2{
}
}
这样,它们与ContainerClass
的实例绑定,如果没有相同的实例则无法创建。您可以将它们设为私有,然后只能在类
答案 2 :(得分:0)
如果我理解你的问题是正确的,你想要的是一个内在的阶级。基本上,要创建一个内部类,您需要在类B中编写类A.
答案 3 :(得分:0)
您可以将A类创建为B的静态内部类,并将A的构造函数保持为私有。然后只有B可以使用这个构造函数。
一些参考链接:
答案 4 :(得分:0)
也许您可以使用classLoaders来确定A类是否从B加载