Activity FlowableException: Couldn't serialize value

問題描述

在使用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");
```
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章