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

2018-07-20 11:37:05 +08:00
 kerb15

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

public abstract class AsyncJob<T> {

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

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

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

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

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

4453 次点击
所在节点    Java
42 条回复
kerb15
2018-07-20 11:39:44 +08:00
没见过的可以顶一下,看下有多少人跟我一样⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄
Cbdy
2018-07-20 11:45:00 +08:00
Java 泛型了解一下
PhxNirvana
2018-07-20 11:46:34 +08:00
这不就是泛型么。。。
oracle128g
2018-07-20 11:51:04 +08:00
方法返回值前面的泛型代表是方法自定义的类型,跟类上的泛型无关。大概意思就是不使用类上定义的泛型。不对的有请楼下补充
qiyuey
2018-07-20 11:53:25 +08:00
这就是个泛型。。。
zhouyou457
2018-07-20 11:56:53 +08:00
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}

泛型这种写法太常见了...
SmallZheng
2018-07-20 12:00:58 +08:00
就是泛型呀,AsyncJob<R> 是返回值
lhx2008
2018-07-20 12:02:57 +08:00
可能是没有空格? R 是从输入参数捕捉的
kerb15
2018-07-20 12:02:59 +08:00
@oracle128g 就是说最前面的<R>可以看作是一种声明吗
cuzfinal
2018-07-20 12:10:19 +08:00
你是没看过 C++的模板。
feiyuanqiu
2018-07-20 12:13:49 +08:00
你同事有点水啊…第一个 R 是泛型方法的类型参数

https://docs.oracle.com/javase/tutorial/extra/generics/methods.html
coffeSlider
2018-07-20 12:16:52 +08:00
这也太水了吧
kansimeng
2018-07-20 12:24:36 +08:00
基础都没打还研究什么 Rxjava?
theohateonion
2018-07-20 12:29:16 +08:00
.....我一个前端都知道这是泛型
easylee
2018-07-20 12:30:59 +08:00
我也觉着是泛型,如果不是的话,请 at 我回来看看。
kerb15
2018-07-20 12:31:46 +08:00
@kansimeng 现在研究不行?
kerb15
2018-07-20 12:32:55 +08:00
@feiyuanqiu thanks
metrxqin
2018-07-20 12:32:59 +08:00
你们也是医药专业转 Java 的吗?
Athrob
2018-07-20 12:42:14 +08:00
```
public abstract class AsyncJob<T> {

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

}

}
```
这样我就能看懂了, 我是 C#
FunnyCodingXu
2018-07-20 12:42:41 +08:00
最基础的泛型。。。好好看书学基础吧

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

https://www.v2ex.com/t/472606

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

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

© 2021 V2EX