代码之家  ›  专栏  ›  技术社区  ›  uma

如何重构方法以避免通配符返回类型?

  •  0
  • uma  · 技术社区  · 3 年前

    下面 get 给出声纳问题的方法:

    在返回类型中不应使用泛型通配符类型。

    我需要一些专家帮助来重构这段代码,以避免声纳问题。我尝试不同的方式,比如 Entity<D.Id> 但我不知道如何与 Entity<C.Id> .

    public interface Identity {
      //
    }
    
    public interface Entity<I extends Identity> {
      //
    }
    
    public interface D
      extends Entity<D.Id>
    {
    }
    
    public interface C
      extends Entity<C.Id>
    {
    }
    
    
    protected Entity<? extends Identity> get(final String value)
     {
        if (value == 'valuD')
        {
          return new D() //return object;
        }
        else
        {
          return new C() //return object;
        }
      }
    
    0 回复  |  直到 3 年前