Java 最近有没有什么黑科技

2018-01-25 21:31:40 +08:00
 chenguoyu

最好能说出作用是什么,如果能够附上一个博客链接就更好了。 我先说一个lombok,可以不写 set/get,而且可以不关闭流了。虽然挺早就出现了,不过我还是最近才得知

18031 次点击
所在节点    Java
105 条回复
jy02405651
2018-01-26 16:54:37 +08:00
看了全部回复~没看一个正经的黑科技!
zjp
2018-01-26 17:01:11 +08:00
#12 没想到都在争论 lombok
感谢#49 解决了我的疑惑…
hantsy
2018-01-26 17:22:27 +08:00
@jy02405651 这个也太复古了。。。之前项目用过 modelmapper,mapstruct,不过现在力求在 Pojo 设计上尽量用一些 DDD 概念,这些 Mapper 显得有点累赘了。
hantsy
2018-01-26 17:23:31 +08:00
@wizardforcel 这个有例子吗?
hantsy
2018-01-26 17:31:46 +08:00
Lombok 这个项目用了好多年,现在 Spring 官方的 Spring Cloud 官方项目中都已经用了。

编译时(运行时不需要),其利用 Java Compiler APT 特性在 java classes 中加入一些常见辅助方法等。除了 Getter,Setter 外,Builder,ToString,hashCodeAndEquals, Data,Slf4j, 三个 XXXContrcutor 都很常用。

类似的工具很多,AutoValue,Immutables 等。

https://dzone.com/articles/lombok-autovalue-and-immutables
hantsy
2018-01-26 17:35:35 +08:00
@sagaxu CoffeeScript 我也觉得难受,难道是为写 Python 的人准备的吗?之前一个 AngularJS 1.5 项目从 CoffeeScript 切换到 ES 6,舒服多了。
hantsy
2018-01-26 17:37:11 +08:00
@xupefei Java 10 应该会引入 Local Variable 的 var 声明支持,感觉这些是动态语言才有的特性。暂时只能用 Kotlin 之类的玩玩。
hantsy
2018-01-26 17:45:12 +08:00
@lihongjie0209
文档都看不懂???
安装个 Lombok 插件有那么难?对于 IDEA,Eclipse 有相应的插件,NetBeans 根本不需要插件自动启用了 APT。
这是新技术? Lombok 仅仅只是利用 Java Compiler 的 APT 特性而已,这个特性是 2004 年 Java 5 年加入的,至今 14 年了。稍微花几分钟了解一下 APT 就可以理解 Lombok 是做什么的。
lihongjie0209
2018-01-26 17:49:27 +08:00
@hantsy #88 正常做项目都要加班, 你还要同事去学新东西, 我是不敢这么干的, 至于说用了 lombok 能带来多大的效率, 这个见仁见智
hantsy
2018-01-26 17:51:30 +08:00
@dizhang1109 Geb,Spock ?很少用。Geb 用过一次。Spock 的一些概念好像 JUnit 5 也有了。
hantsy
2018-01-26 17:59:59 +08:00
@lihongjie0209 那是你们项目没有人推动技术和工具,对于项目管理基本上靠吼的团队来说很正常,只要有一点技术的东西都认为是项目进度的障碍。这样的团队我可以理解,因为团队里没人知道工具来带来的效率。
viakiba
2018-01-26 18:05:05 +08:00
lombok 我们只用一个 @Log4j 注解,setter/getter 需要用来打断点不能省
wizardforcel
2018-01-26 18:22:33 +08:00
@lihongjie0209 请你把你们的 pom.xml 发出来让大家看看用了多少库。我敢保证 lombok 的 api 比里面大多数都少。
lihongjie0209
2018-01-26 18:41:22 +08:00
统一回复一下:
1. 我用过 lombck, 但是没有在同事之间推广, 因为它入侵代码还要装插件.
2. lombck 解决的问题并不是没有解决方案的, ide 自动生成也没有多难, 所以并没有使用 lombok 的需求.
3. 学习 lombck 是有个过程的, 包括试错以及个人的学习能力, 在已有的自动生成代码非常稳定以及熟悉的情况下, 没有必要引入新的东西.
4. 这种东西感觉没什么讨论的意义, 与公司的环境有很大关系, 后面的内容不再回复了.
lihongjie0209
2018-01-26 18:44:11 +08:00
aristotll
2018-01-26 19:17:36 +08:00
@lihongjie0209 #94 你的几点都站不住脚的 入侵代码 getter setter 才是 装插件之类也是醉了

你的同事连 lombok 的学习能力都没吗

如果是遗留代码的确没必要加 但是新代码加绝对没问题的
laodao1990
2018-01-26 19:26:51 +08:00
我嚓嘞!楼主明明好意讨论下 java 新技术,咋变成 lombok 攻防战了。。。
wallriding
2018-01-26 19:53:18 +08:00
觉得看个 lombok 的文档也能算学习成本的人也基本上属于弱智了
chocotan
2018-01-26 21:17:50 +08:00
lombok 好东西+1,自己的小项目在用,领导也觉得不错,缺点楼上们也说了要装插件
winglight2016
2018-01-26 21:33:32 +08:00
用 playframework 的一笑而过~~~

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

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

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

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

© 2021 V2EX