有多少人熟悉 Java 如下语法: public <R> R get(R a)

2018 年 7 月 20 日
 ex1gtnim7d

最近在研究 Rxjava 中发现使用了这样的写法。

public abstract class AsyncJob<T> {

    public <R>AsyncJob<R> map(Func<T,R> func){
        
    }
    
}

对于 <R>AsyncJob<R> 这种写法感到陌生,问了一圈同事都说不清楚。

一开始以为是泛型相关,然而没有查到相关介绍。

最后在这篇博客看到 [ java 中返回任意类型值]

大概知道了这是一种 [返回任意类型] 的语法,有人熟悉并知道正确的叫法吗?

5164 次点击
所在节点    Java
42 条回复
ex1gtnim7d
2018 年 7 月 20 日
没见过的可以顶一下,看下有多少人跟我一样⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄
Cbdy
2018 年 7 月 20 日
Java 泛型了解一下
PhxNirvana
2018 年 7 月 20 日
这不就是泛型么。。。
oracle128g
2018 年 7 月 20 日
方法返回值前面的泛型代表是方法自定义的类型,跟类上的泛型无关。大概意思就是不使用类上定义的泛型。不对的有请楼下补充
qiyuey
2018 年 7 月 20 日
这就是个泛型。。。
zhouyou457
2018 年 7 月 20 日
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}

泛型这种写法太常见了...
SmallZheng
2018 年 7 月 20 日
就是泛型呀,AsyncJob<R> 是返回值
lhx2008
2018 年 7 月 20 日
可能是没有空格? R 是从输入参数捕捉的
ex1gtnim7d
2018 年 7 月 20 日
@oracle128g 就是说最前面的<R>可以看作是一种声明吗
cuzfinal
2018 年 7 月 20 日
你是没看过 C++的模板。
feiyuanqiu
2018 年 7 月 20 日
你同事有点水啊…第一个 R 是泛型方法的类型参数

https://docs.oracle.com/javase/tutorial/extra/generics/methods.html
coffeSlider
2018 年 7 月 20 日
这也太水了吧
kansimeng
2018 年 7 月 20 日
基础都没打还研究什么 Rxjava?
theohateonion
2018 年 7 月 20 日
.....我一个前端都知道这是泛型
easylee
2018 年 7 月 20 日
我也觉着是泛型,如果不是的话,请 at 我回来看看。
ex1gtnim7d
2018 年 7 月 20 日
@kansimeng 现在研究不行?
ex1gtnim7d
2018 年 7 月 20 日
@feiyuanqiu thanks
metrxqin
2018 年 7 月 20 日
你们也是医药专业转 Java 的吗?
Athrob
2018 年 7 月 20 日
```
public abstract class AsyncJob<T> {

public AsyncJob<R> map<R>(Func<T,R> func) {

}

}
```
这样我就能看懂了, 我是 C#
FunnyCodingXu
2018 年 7 月 20 日
最基础的泛型。。。好好看书学基础吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/472606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX