【问题标题】:Generics in java at method level [duplicate]方法级别的Java泛型[重复]
【发布时间】:2022-08-14 00:29:45
【问题描述】:

我是java新手。我正在尝试调试代码并且无法理解一行。

public interface CommandDispatcher {
    <T extends BaseCommand> void registerHandler(Class<T> type, CommandHandlerMethod<T> handler);
    void send(BaseCommand command);
}

我知道泛型,但无法理解下面的行。

 <T extends BaseCommand> void registerHandler(Class<T> type, CommandHandlerMethod<T>)

void 之前的 &lt;T extends BaseCommand&gt; 是什么,我也无法理解 Class&lt;T&gt;

有人可以解释我理解上述行。考虑BaseCommandinterface.

标签: java spring spring-boot generics backend


【解决方案1】:

&lt;T extends BaseCommand&gt; 表示在调用方 Type T能够是 BaseCommand 或派生自 BaseCommand 类/接口。

Class&lt;T&gt; type 表示第一个参数应该是 Class T 的类型。

class Command extends BaseCommand{ 
}

然后你可以这样打电话

registerHandle( Command.class, ...);

这样在实现内部就可以创建类型命令的实例。

【讨论】:

  • 太感谢了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多