这个语法指的是什么?

时间:2017-04-05 11:09:35

标签: java android

我正在阅读项目中的一些代码片段,我发现了一些带有此签名的函数。有人可以向我解释返回类型之前的部分是什么吗?

 private <T extends SessionRequest> void continueSession(T request, Action action)

1 个答案:

答案 0 :(得分:2)

这是一个带约束的通用方法.... 想象一下

private void continueSession(T request){}
然后你的员工可以做类似的事情:

continueSession("Hi"); 

continueSession(1000); 

所以你需要能够编译时间来约束作为参数的方法....

现在,如果你这样做

private  <T extends Number> void continueSession(T request){}

然后试图打电话

continueSession("Hi"); 

永远不会编译,因为字符串不是Number的子类,所以回答你的问题:

 private <T extends SessionRequest> void continueSession(T request, Action action)

只允许

的对象
  • SessionRequest 的子类 或
  • 实现界面 SessionRequest