Java generics method overriding

后端 未结 3 1217
天涯浪人
天涯浪人 2021-01-22 23:33

I have interface:

public interface CartService extends RemoteService{
     T execute(Action action);
}

3条回答
  •  不知归路
    2021-01-23 00:25

    The problem is the definition of the interface vs what the erausre should look like for your impl. In your example you have:

     T execute(Action action);
    public  GetCartResponse execute(GetCart action);
    

    but according to the interface definition the implementation method should read:

    public GetCartResponse execute(Action action);
    

    So I think you either need to change the signature of your interface or add another type parameter such as:

    public interface CartService extends RemoteService{
         T execute(U action);
    }
    

    or possibly something along the lines of:

    public interface CartService extends RemoteService{
         ActionResponse execute(Action action);
    }
    

提交回复
热议问题