Я получаю объект json из моего JS-кода в код Java как Java-объект.
Теперь я пытаюсь использовать этот объект в моей другой функции, которая принимает List of Class Datatype. Но я все время сталкиваюсь с ошибкой.
java.lang.ClassCastException: java.util.ArrayList не может быть приведен к com.lexec.domain.Task
Здесь Task - это мой тип данных класса, а SubTask расширяет Task. В функции buildTask я пытаюсь преобразовать подзадачу в список подзадач, но на этом этапе происходит сбой.
Может кто-нибудь помочь мне, как избавиться от этой ошибки? Дайте мне знать, нужна ли какая-либо дополнительная информация.
@POST
@Path("/saveBPELTask")
@Consumes(MediaType.APPLICATION_JSON)
public CTaskPI saveBPELTask(SubTask subtask) {
BpelTask btask = (BpelTask) taskBuilderFactory.buildTask(subtask);
return btask;
}
public Task buildTask(SubTask subTask) {
List<SubTask> abc = (List<SubTask>) new List<SubTask> ();
abc.add(subTask);
return (Task) buildChildTasks(abc);
}
private List<Task> buildChildTasks(List<SubTask> subTaskList){
List<Task> taskList = new ArrayList<Task>();
Task task = null;
for(int i = 0;i < subTaskList.size(); i++){
SubTask subTask = subTaskList.get(i);
if(subTask.getExpression().startsWith("if")){
task = new BpelTask();
((BpelTask)task).setAction(BpelAction.CONTINUE);
taskList.add(task);
} else if(subTask.getExpression().startsWith("endif")){
task = new BpelTask();
((BpelTask)task).setAction(BpelAction.ABORT);
taskList.add(task);
}
return taskList;
}