原创 stream優化責任鏈設計模式 responsibility chains

責任鏈設計模式傳統的實現方式: public class TestMaxBy { public static void main(String[] args) { CookieStep1 step1 = new

原创 Optional java8 引入新特性

1. null 有什麼問題? 容易報錯 增加代碼量 無意義 埋的一個坑 2. 從null到Optional Optional<House> optHouse = Optional.empty(); Optional<House> op

原创 接口的 default method , 多繼承

1.什麼是default method? interface 中的default method就是一個具體方法。在擴展接口時,爲了滿足向後兼容,採用default method。 比如,List接口中的sort方法: default v

原创 Activiti(1)簡介

  design tools:是畫流程圖的,activiti model是web-based在瀏覽器上畫的,activiti designer是eclipse插件; process engine:分兩種,Activiti Engine可

原创 用lambda簡化工廠設計模式

傳統工廠設計模式實現: import java.util.HashMap; import java.util.Map; import java.util.function.Supplier; public class FactoryP

原创 用lambda簡化模板模式 template method

傳統模板模式的寫法,用匿名類: public class TestMaxBy { public static void main(String[] args) { crossChannel(new Fly()

原创 用lambda簡化觀察者模式 observer

傳統的觀察者實現方式: import java.util.ArrayList; import java.util.List; public class TestMaxBy { public static void main(

原创 CompletableFuture,Java 異步編程

構建異步編程,返回結果 構建線程池;提交一個Callable並獲得Future;取結果,也許會阻塞。 異步執行圖 public class Shop { public double getPrice(Str

原创 Creating A custom Annotation

Domain package other.annotation; @JsonSerializable public class Car { @JsonElement private String passeng

原创 Stream Demos 2

domain object public class Dish { public Dish(String name, boolean vegetarian, int calories, Type type) {

原创 Stream Demos

Collection public class Dish { public Dish(String name, boolean vegetarian, Integer calories, Type type) {

原创 用method reference 替換lambda expression,提升可讀性

lambda 表達式: Map<WeightLevel, List<Human>> map = humans.stream().collect(groupingBy((human) -> { if

原创 java stream 併發

併發的一個Sream static void parallelismSum(int n){ int res = Stream.iterate(1, i -> i+1) .limit(

原创 將匿名類替換成lambda

將匿名類替換成lambda 匿名類的實現方式: Runnable runnable = new Runnable() { @Override public void run() {

原创 Item19:Design and document for inheritance or else prohibit it

下面的代碼的運行結果: null 2020-04-01T23:56:06.132Z 實例化子類,子類會在調用自己的構造器前,先調用父類的構造器。如果父類構造器調用的方法被子類覆蓋,並且這個overriding父類方法的方法裏,有