我有一个类层次结构,它们具有遵循相同层次结构的行为类(引用其父类的类)。行为类中的引用是一个通用引用,以避免堆叠接口。
在这个类层次结构的中间,也会引入一个通用的数据Map,这会给我带来以下问题......
public static class A {}
public static class B<DataType> extends A {}
public static class C<ParentType extends A> {}
public static class D<DataType, ParentType extends B<DataType>> extends C<ParentType> {}
C<A> castDtoC() { return new D<Long, B<Long>>(); } // Doesn't compile
A castBtoA() { return new B<Long>(); } // Works fine
我不明白为什么不能施展,有没有办法解决这个问题?
我知道我可以通过将行为类放入内部类来避免引用,但是每个文件我将有1000多行代码,并且我希望每次使用时都不必抛出引用这是儿童班。