各位大佬,你们觉得 Java 的泛型难吗?

2019-12-06 17:21:57 +08:00
 TMDlw

基础比较差,看的有点懵逼

6669 次点击
所在节点    Java
41 条回复
avalon0624
2019-12-06 17:33:50 +08:00
不难
qiyuey
2019-12-06 17:39:19 +08:00
不难,不支持协变和逆变比较可惜
meteor957
2019-12-06 17:41:47 +08:00
<A<B<C<D<E>>>>>
dosmlp
2019-12-06 17:42:37 +08:00
不要太容易
sadfQED2
2019-12-06 17:43:08 +08:00
真香
Narcissu5
2019-12-06 17:46:12 +08:00
```scala
class ApplicativeOps[M[_],A](ma:M[A])(implicit a:Applicative[M]){

def ~>[B](mb: M[B]):M[B] = a(a(a.pure((_:A) => (b:B) => b), ma),mb)
def andKeep[B](mb: M[B]):M[B] = ~>(mb)

def <~[B](mb: M[B]):M[A] = a(a(a.pure((a:A) => (_:B) => a), ma),mb)
def keepAnd[B](mb: M[B]):M[A] = <~(mb)

def <~>[B,C](mb: M[B])(implicit witness: <:<[A,B => C]): M[C] = apply(mb)
def apply[B,C](mb: M[B])(implicit witness: <:<[A,B => C]): M[C] = a(a.map(ma,witness),mb)
}
```

贴段 play2 的 scala 代码感受下
zhaodazzle
2019-12-06 17:52:38 +08:00
@Narcissu5 你的代码为什么骂人
wsxyeah
2019-12-06 18:19:51 +08:00
可以读下 Core Java 卷一
voidmnwzp
2019-12-06 18:38:30 +08:00
反正又不是真泛型,稍微会用就行了
joyhub2140
2019-12-06 18:39:55 +08:00
不难,泛型表面很优雅,但是底层很丑陋。
kaedea
2019-12-06 18:42:08 +08:00
泛型不难,泛型变型难上天
lhx2008
2019-12-06 18:52:52 +08:00
泛型通配还是挺难的,说容易的看一下 stream 的几个 oprator 的函数的参数吧,一眼看懂算我输
lhx2008
2019-12-06 18:56:53 +08:00
不过相比 c++的模板,还是大巫见小巫
luckylo
2019-12-06 18:58:17 +08:00
@lhx2008 至今懵逼的。用的函数基本都是看注释里的示例代码。还有就是 宇宙第二 IDE
fewok
2019-12-06 18:59:54 +08:00
用别人设计的类库不难,难在自己设计
lotosbin
2019-12-06 19:02:26 +08:00
java 有范型?
lululau
2019-12-06 19:06:08 +08:00
呵呵,范型要是不难,那 Java 就没有什么难的地方了
coer
2019-12-06 19:06:59 +08:00
那是你还没了解过 c++的模版
jaylee4869
2019-12-06 19:21:14 +08:00
今天写的:

Map<String, Map<String, Map<String, String>>> res = list.stream()...;
wysnylc
2019-12-06 19:29:31 +08:00
能百度出的都不难,学就完事

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

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

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

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

© 2021 V2EX