SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道!



2022年,Spring Framework 6.0和 SpringBoot 3.0都会推出,在此之前,Java社区很坚挺,一直是"新版任你发,我用Java 8",不管新版本怎么出,很少有人愿意升级。

这一次 Spring直接跨越了 JDK 11,升级到 JDK 17,主要的考虑应该是因为JDK 17有更多的新特性支持。
本地变量类型推断
MyObject value = new MyObject();
var value = new MyObject();
Switch 表达式
int i;
switch (x) {
case "1":
i=1;
break;
case "2":
i=2;
break;
default:
i = x.length();
break;
}
int i = switch (x) {
case "1" -> 1;
case "2" -> 2;
default -> {
int len = args[1].length();
yield len;
}
};
int i = switch (x) {
case "1": yield 1;
case "2": yield 2;
default: {
int len = args[1].length();
yield len;
}
};
Text Blocks
Hello, world
"\n" +
" \n" +
"Hello, world
\n" +
" \n" +
"\n";
"""
Hello, world
""";
String query = """
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = 'INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
""";
Records
record Person (String firstName, String lastName) {}
封闭类
public sealed interface Service permits Car, Truck {
}
public abstract sealed class Vehicle permits Car, Truck {
}
instanceof 模式匹配
if (animal instanceof Cat) {
Cat cat = (Cat) animal;
cat.miaow();
} else if (animal instanceof Dog) {
Dog dog = (Dog) animal;
dog.bark();
}
if (animal instanceof Cat cat) {
cat.miaow();
} else if(animal instanceof Dog dog) {
dog.bark();
}
switch 模式匹配
static String formatter(Object o) {
String formatted = "unknown";
if (o instanceof Integer i) {
formatted = String.format("int %d", i);
} else if (o instanceof Long l) {
formatted = String.format("long %d", l);
} else if (o instanceof Double d) {
formatted = String.format("double %f", d);
} else if (o instanceof String s) {
formatted = String.format("String %s", s);
}
return formatted;
}
static String formatterPatternSwitch(Object o) {
return switch (o) {
case Integer i -> String.format("int %d", i);
case Long l -> String.format("long %d", l);
case Double d -> String.format("double %f", d);
case String s -> String.format("String %s", s);
default -> o.toString();
};
}
技术交流群
最近有很多人问,有没有读者交流群,想知道怎么加入。
最近我创建了一些群,大家可以加入。交流群都是免费的,只需要大家加入之后不要随便发广告,多多交流技术就好了。
目前创建了多个交流群,全国交流群、北上广杭深等各地区交流群、面试交流群、资源共享群等。
有兴趣入群的同学,可长按扫描下方二维码,一定要备注:全国 Or 城市 Or 面试 Or 资源,根据格式备注,可更快被通过且邀请进群。
▲长按扫描
往期推荐
「中国加班第一楼」深圳科兴万人大撤离!拖主机带屏幕,程序员公交上写代码
快手公司厕所装坑位计时器,网友:再也不能带薪拉屎了!
Spring Boot官宣:正式弃用 Java 8
如果你喜欢本文, 请长按二维码,关注 Hollis. 转发至朋友圈,是对我最大的支持。 点个 在看 喜欢是一种感觉 在看是一种支持 ↘↘↘