什么优雅,干净都不复存在了。
我 TMD 明明是个有追求的人,怎会写出这样的代码?
我 TMD 明明是个有追求的人,怎会写出这样的代码?
|
theTdMay 22, 2019
1
用 Callable 的话是可以吃掉受检性异常的吧?
|
|
xiaoideaMay 22, 2019
2
|
|
airflingMay 22, 2019 via Android
3
你至少要把那三个出现可能异常的的点解决掉,不太建议代码都写在这一块。每个方法的代码尽量不超过 10 行
|
|
mritdMay 22, 2019
4
如果线上这一串出现了空指针啥的...
|
|
7
io 相关感觉不太适合 stream,CompletableFuture 感觉更适合
|
|
xinyewdzMay 22, 2019
8
这代码,看的人也是头大。
|
|
BBCCBBMay 22, 2019
9
封装成一个方法,然后流里调该方法也许可破.
|
|
BBCCBBMay 22, 2019
10
或者将相应的 Function, Consumer 放到外面声明
|
|
chocotanMay 22, 2019
11
可以试下下 Try
javaslang 里的 |
|
passerbytinyMay 22, 2019
12
这是受检异常造成的,跟 Stream 有什么关系。而且你这个流干的东西也太多了吧,都要跨系统调用来获取数据了,这应该是高级流干的事,不应该是 API 级别的低级流干得事。
|
|
BCy66drFCvk1Ou87May 22, 2019
13
java 8 的新特性 lambda 也是搞得我懵逼,一堆箭头函数跟写 es6 一样……
|
|
jinhan13789991May 22, 2019 via Android
14
要不~试试 rxjava ? 对异常处理友好~
|
|
SharuruMay 22, 2019
15
流略长……不要把以前的宽度问题转换成高度问题啊- -
|
|
x66May 22, 2019
16
最怕的难道不是写了一大串,突然线上出一个空指针,根本找不到是哪一行的问题,那感觉简直绝望。
|
|
17
不要吐槽太长嘛,我就算是短成俩行,他遇到异常,还是得咯噔一下
|
|
syhanMay 22, 2019
18
Try+1
|
|
reecoMay 22, 2019
19
用 JOOL 处理 checked exception
https://github.com/jOOQ/jOOL before: ``` Arrays.stream(dir.listFiles()).forEach(file -> { try { System.out.println(file.getCanonicalPath()); } catch (IOException e) { throw new RuntimeException(e); } // Ouch, my fingers hurt! All this typing! }); ``` after: ``` Arrays.stream(dir.listFiles()).forEach( Unchecked.consumer(file -> { System.out.println(file.getCanonicalPath()); }) ); ``` |
|
guyeuMay 22, 2019
21
代码组织有问题,流并不是所有地方都适用的。
|
|
art2catMay 22, 2019
22
effective java 里说不要超过三行,楼主这是入了魔啊
|
|
24
@passerbytiny 当然跟流有关系。
`Stream.map(Function func)` 拿 map 来说,map 方法签名中的 Function.apply 签名没有 throws Exception,所以就要求 function 实现必须把异常 catch 住。 |
|
SoloCompanyMay 22, 2019
25
java 自己给自己埋坑导致的, 语言层面的 checked exception 和 fp 就天然水土不服
虽然这个坑完全是编译器造成的, 但为了兼容不得不一直坑下去 fp 还是用 kotilin 吧 |
|
ppaapcMay 22, 2019
26
优化下格式 好好分割下还可以 stream 写着处理异常确实感觉有点蛋疼
|
|
qiyueyMay 23, 2019 via Android
27
没办法,上 Kotlin 吧
|
|
encounter2017May 23, 2019
28
来学 scala 啊
|
|
29
附言格式乱了,还是截图好看些
|