随着2019年9月17日Java13正式发布,不少伙伴们都震惊了,手里用的仍是个位数版本的,官方咋都干到13了,不过也没必要太着急,毕竟最近的两个长期支持版本是8和11,手持Java8的伙伴表示还能再战三年!java
可是身边的程序员老王虽然手持Java8,写的仍是7的代码,记忆中几个经典的业务场景代码,已经烙印在脑海里了,其实你们早就不这么写了喂,让咱们举几个例子:程序员
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < bizList.size(); i++) {
strBuilder.append(bizList.get(i));
if (i != bizList.size() - 1) {
strBuilder.append(",");
}
}
System.out.println(strBuilder.toString());
// v,t,1,2,3,4
复制代码
其实如今都是这样的sql
StringJoiner sj = new StringJoiner(",");
bizList.forEach(sj::add);
System.out.println(sj.toString());
// v,t,1,2,3,4
复制代码
或者这样的数组
String result = bizList.stream().collect(Collectors.joining(","));
System.out.println(result);
// v,t,1,2,3,4
复制代码
甚至直接这样的bash
String result = String.join(",", bizList);
System.out.println(result);
// v,t,1,2,3,4
复制代码
new Thread() {
@Override
public void run() {
System.out.println("New Thread");
}
}.start();
复制代码
其实如今都是这样的:app
Runnable task = () -> System.out.println("New Thread");
new Thread(task).start();
复制代码
或者这样的:ide
public static void main(String[] args) {
new Thread(new CommonTest()::task).start();
}
public void task() {
System.out.println("New Thread");
}
复制代码
int[] intArr = {1, 5, 9, 6, 4, 5, 1, 5, 6, 9, 10, 1, 5};
Map<Integer, Integer> bizMap = new HashMap<>();
for (int i = 0; i < intArr.length; i++) {
int item = intArr[i];
// contains key : + 1
if (bizMap.containsKey(item)) {
bizMap.put(item, bizMap.get(item) + 1);
} else { // default 1
bizMap.put(item, 1);
}
}
for (Map.Entry<Integer, Integer> bizMapEntry : bizMap.entrySet()) {
System.out.print("[" + bizMapEntry.getKey() + " => " + bizMapEntry.getValue() + "]");
}
//[1 => 3][4 => 1][5 => 4][6 => 2][9 => 2][10 => 1]
复制代码
其实如今都是这样的:ui
public static void main(String[] args) {
int[] intArr = {1, 5, 9, 6, 4, 5, 1, 5, 6, 9, 10, 1, 5};
Map<Integer, Integer> bizMap = new HashMap<>();
for (int i = 0; i < intArr.length; i++) {
bizMap.compute(intArr[i], CommonTest::count);
}
bizMap.forEach((k, v) -> System.out.print("[" + k + " => " + v + "]"));
//[1 => 3][4 => 1][5 => 4][6 => 2][9 => 2][10 => 1]
}
public static Integer count(Integer key, Integer val) {
return val == null ? 1 : val + 1;
}
复制代码
甚至是这样的:spa
int[] intArr = {1, 5, 9, 6, 4, 5, 1, 5, 6, 9, 10, 1, 5};
// vt tips : 别忘了装箱boxed() 一下
Map<Integer, Integer> bizMap = Arrays.stream(intArr).boxed()
.collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(i -> 1)));
bizMap.forEach((k, v) -> System.out.print("[" + k + " => " + v + "]"));
//[1 => 3][4 => 1][5 => 4][6 => 2][9 => 2][10 => 1]
复制代码
if (objA != null) {
ObjB objB = objA.getObjB();
if (objB != null) {
ObjC objC = objB.getObjC();
if (objC != null) {
return objC.getResult() == null ? "" : objC.getResult();
}
}
}
复制代码
其实如今都是这样的:线程
String result = Optional.ofNullable(objA).map(ObjA::getObjB).map(ObjB::getObjC)
.map(ObjC::getResult).orElse(EMPTY);
return result;
复制代码
Thread.sleep(24 * 60 * 60 * 1000);
Date result = new Date();
复制代码
Date currDate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(currDate);
cal.add(Calendar.DATE, 1);
Date result = cal.getTime();
复制代码
可是如今已经能够这样:
LocalDate result = LocalDate.now().plusDays(1);
java.util.Date utilsPackageDate = java.sql.Date.valueOf(result);
复制代码
暂时先举这几个经常使用的例子,下面咱们能够讨论一下,老王这样写代码,有错吗? 我认为并无错,运行稳定,代码规范,就是好代码,就算你写出花了,别人看不懂,难以维护也是不可取的。
不过做为一名合格的程序员,时常更新一下技术储备,写下代码以前,思考一下要写的代码的“Best Practice”是怎样的,也是一门必修课程呀。
走过路过别错过~ 点个赞再走吧~