JDK 14 ​java.lang.Record和jfinal的Record冲突

java.lang.Record 默认不需要导入包的。

评论区

JFinal

2020-07-07 16:58

导入一下 com.jfinal.plugin.activerecord.Record 就可以了

JFinal

2020-07-07 16:59

如果以后有很多同学反馈用着不方便,未来的版本可以改名

sioui

2020-07-07 17:00

@JFinal 还是会提示报错的,除非写完整包路径 com.jfinal.plugin.activerecord.Record record = null; 这样要改的地方太多了

JFinal

2020-07-07 17:04

@sioui 如果你在 JDK 14 下使用,为了方便,可以 git clone 源码到本地,然后将 Record 命名重构为 Row

然后安装到本地 maven 库就可以使用了,这里有具体的方法:
https://jfinal.com/share/2093

记得回来反馈使用的感受,如果好用,将来考虑改名

JFinal

2020-07-07 17:05

eclipse 、IDEA 这类工具重构改类名是很方便的,秒秒钟改完

sioui

2020-07-07 17:10

@JFinal 可以的,就是后续版本升级又得改一遍 -。-

李通

2020-07-07 17:38

还有一个办法,新建一个类,集成record,实例化并调用

zzutligang

2020-07-07 17:58

不建议改!要不然程序都要改一遍,想起来都觉得不合适!类重名的多了。导入的时候指定导入哪个不就行了。如果确实需要在一个class里使用这两个record对象,那就写全,有啥啊。老的JFinal项目全改一遍,想想都觉得恐怖。

sioui

2020-07-07 18:55

@zzutligang 问题在于老的项目必须改,否则Record 默认指向java.lang.Record 肯定报错。

JFinal

2020-07-07 19:07

@zzutligang 这里的关键在于 JDK 14 的 java.lang 包下面新增了 Record 类,而 java.lang 包下面的任何东西都是不需要 import 就直接生效的

久伴轻尘

2020-07-08 08:46

看来以后包命名还要特立独行一点

zzutligang

2020-07-08 09:13

JDK14的Record就是和Lombok的功能差不多。这么一说,看来JFinal要适配jdk14,还真得改Record类名了。不过老项目基本上都是用jdk1.8的,先不关心这个问题了。

himans

2020-07-08 15:26

java8不香吗?

老高

2020-07-08 15:46

厉害 都 jdk14 了

happyboy

2020-07-09 18:29

先把jfinal源码下载下来,然后改掉Record的名字,maven重新编译。然后用IDEA批量替换。

steven_lhcb_9527

2020-12-08 15:33

java已经到15了

steven_lhcb_9527

2020-12-22 08:47

Java16马上就出来了

sioui

2020-12-23 13:46