如何使用泛型在Java类中定义类引用?

如何使用泛型在Java类中定义类引用?,java,oop,generics,Java,Oop,Generics,如何使用Java定义以下类设计 class Test { private ClassA classA; **Placeholder for class reference** } 在上面的占位符中,我想传递ClassB或ClassC的实例。如何声明变量 class ClassB { List<ClassD> classDList; } class ClassC { List<ClassE> classEList; }

如何使用Java定义以下类设计

class Test
{
    private ClassA classA;
    **Placeholder for class reference**
}
在上面的占位符中,我想传递ClassB或ClassC的实例。如何声明变量

class ClassB
{        
    List<ClassD> classDList;
}

class ClassC
{
    List<ClassE> classEList;
}

class ClassD
{
    String string;
    List<ClassE> classEList;
}

class ClassE
{
    String string;
    List<ValueObject> valueObjectList;
}
B类
{        
列表类列表;
}
C类
{
列表类列表;
}
D类
{
字符串字符串;
列表类列表;
}
阶级
{
字符串字符串;
清单价值对象清单;
}

请告诉我是否有其他更好的解决方案用于上述设计。

不完全清楚您所说的“作为普通类型”是什么意思,但是:如果
ClassCB
ClassDB
都扩展
ClassB
,然后
ClassCB
ClassDB
的实例可分配给
ClassB
类型的变量

class ClassB {}
class ClassCB extends ClassB {}
class ClassDB extends ClassB {}
泛型似乎与这个问题无关。

类测试
class Test<A,B>
{
    private A classA;
    // A common type for ClassCB and ClassDB
    private B classB;
}
{ 私人A级; //ClassCB和ClassDB的通用类型 私人乙类;; }
让ClassCB和ClassDB扩展ClassB?为什么需要这样做?如果
ClassCB
ClassDB
没有共同之处,那么为什么要互换使用它们呢?Java没有不相交的并集类型。因此,除非ClassB和ClassC有一个共同的超类型(接口?),否则不能这样做。但是,许多库都有
other
类型,所以use可以使用:
other