希望Hutool能支持下JDK8~JDK17的所有版本 · Issue #I5AGFK · dromara/hutool |
您所在的位置:网站首页 › 支持jdk17的idea版本 › 希望Hutool能支持下JDK8~JDK17的所有版本 · Issue #I5AGFK · dromara/hutool |
不能放弃呀,肯定要有取舍,Spring官网都替我们踩坑,踩了那么多。咋们肯定不要怕。 得弄一个版本,作为 jdk17适配的么 比如:7.X, 功能和6.X一样, 只是适配了,jdk9+版本,有取舍。 再说:这个SpringBoot 3.X 2022年11月份正式发布,到时候,肯定有一部分人升级; 到时候,就没法 用hutool。 jdk9+会报错的反射增加: @SuppressWarnings("deprecation") // on JDK 9 或者 @Deprecated(since = "9.0.0", forRemoval = true) 或者:直接咋就 ,6.X 适配 springboot3(jdk17 + jakarta ee 9)
就反射:setAccessible(true) 要加jvm参数,其实: 在新版本,文档 加好说明就可以了; 没必要,过多 纠结。能升级jdk9+, 基本也了解了一些,jdk9的模块化。 你看 Spring的ReflectionUtils,也有这问题,直接写的:jdk9,不建议使用反射了。避免和jvm安全机制冲突。 结论:不用担心,这个是jdk机制问题,无法绕过的。无论如何 都要添加jvm参数。 Spring官方源码 org.springframework.util.ReflectionUtils /** * Make the given field accessible, explicitly setting it accessible if * necessary. The {@code setAccessible(true)} method is only called * when actually necessary, to avoid unnecessary conflicts with a JVM * SecurityManager (if active). * @param field the field to make accessible * @see java.lang.reflect.Field#setAccessible */ @SuppressWarnings("deprecation") // on JDK 9 public static void makeAccessible(Field field) { if ((!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers()) || Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) { field.setAccessible(true); } }测试了,Spring自带的反射一样报错:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |