2014-02-16 36 views
0

鉴于如下界面:泛型您已经知道泛型的类型?

Interface Executor<T extends Form> 
{ 
    public Result execute(Request<T> request); 
} 

以及若干这个接口的实现方式中,如:

  • LoginExecutor
  • AddContactExecutor

对于每一次实施,我确切知道T的价值会是什么。

E.g,为LoginExecutorTLoginForm extends Form

什么是定义在这种情况下我实现的传统方式?如果我这样做:

public LoginExecutor<LoginForm> implements Executor<LoginForm> 
{ 
    public Result execute(LoginForm request) {...} 
} 

给我一个错误。所以我做了以下内容:

public LoginExecutor<T extends LoginForm> implements Executor<T> 
{ 
    public Result execute(T request) {...} 
} 

,这似乎是工作,但我不知道是否有这样做的更好/更传统的方式。

+1

当然只是'类LoginExecutor实现执行器'? –

+0

请求? –

回答

3

通常,如果你知道的类型一般你可以做以下的:

public LoginExecutor implements Executor<LoginForm> 
{ 
    public Result execute(LoginForm request) {...} 
} 

顾名思义这种方法用于泛型编程。当类型是知道的并且你想要用于特定的类型时,你只需要使用类型来实现,而通用类型则变得特定。