問題描述
在使用flowable 會籤功能時,無法將審覈人集合傳入activity。
Map<String,Object> map = new HashMap<>();
// List<String> userIdList = Arrays.asList("AAAA","BBBB","CCCC","DDDD");
// Stream.of(Arrays.asList("AAAA","BBBB"),Arrays.asList("CCCC","DDDD"))
// .flatMap(item -> item.stream())
// .filter(this::filterArray)
// .reduce(this::resolveString)
// .get();
// map.put("assigneeList",userIdList);
List<String> userIdList = new ArrayList<String>(){{
add("AAAA");
add("BBBB");
add("CCCC");
add("DDDD");
}};
//最新的流程定義
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(),map);
問題形成原因:
List<String> userIdList = new ArrayList<String>(){{
add("AAAA");
add("BBBB");
add("CCCC");
add("DDDD");
}};
這種寫法是匿名內部類的寫法,ArrayList 實現了序列化方式,但是 這個匿名內部類沒有實現序列化。
匿名內部類的對象會伴隨主對象的整個生命週期,並且匿名類必然不會繼承序列化接口支持序列化,所以在執行序列化時會發生無法序列化外部類的情況,因爲匿名類對象也是一個需要序列化的成員。
解決方式:
List<String> userIdList = Arrays.asList("AAAA","BBBB","CCCC","DDDD");
```