GenericThingDeserialiser

GenericThingDeserialiser

我正在从事一个涉及从字符串/流中读取结构的项目。
作为设计的一部分,我尝试按照以下思路创建一些东西:

  • public class Thing;
  • public class SpecialThing extends Thing;
  • public class ShinyThing extends Thing;
  • public abstract class ThingDeserialiser implements Iterable<Thing>;
  • public abstract class GenericThingDeserialiser<T extends Thing> extends ThingDeserialiser implements Iterable<T>;
  • public class SpecialThingDeserialiser extends GenericThingDeserialiser<SpecialThing>;
  • public class ShinyThingDeserialiser extends GenericThingDeserialiser<ShinyThing>;

  • 但是我收到了GenericThingDeserialiser的错误,因为之间存在冲突
  • 实现ThingDeserialiser
  • Iterable<Thing>
  • GenericThingDeserialiser尝试实现Iterable<T>

  • 我可以在C#中创建这样的设置,为什么我不能在Java中进行设置?

    有办法解决这个问题吗?

    我还考虑过删除ThingDeserialiser,以希望ShinyThingDeserialiserSpecialThingDeserialiser都可以转换为GenericThingDeserialiser<Thing>,但按预期那样是行不通的。

    我还有一个涉及接口的想法,但是我想停下来并寻求建议,然后再继续。

    如果不是很明显,通常的想法是根据合理的琐碎模式从字符串/流中检索Thing对象。

    最佳答案

    我绝对建议删除ThingDeserialiser。您说您想将ShinyThingDeserialiser和SpecialThingDeserializer强制转换为GenericThingDeserialiser ,但这是行不通的。您应该可以将它们强制转换为GenericThingDeserialiser 。有帮助吗?

    09-13 03:58