Здравствуйте, у меня есть структура try catch и я хочу сделать асинхронный код в операторе finally.Я пытаюсь поместить эту часть в лямбду и привести к задаче, чтобы поставить ее ForkJoinPool, но есть исключение Class Cast.Как сделать асинхронную часть кода лучше.Нужно ли использовать атомные или переменные перед полями?
public class Record {
private String actionDetails;
public void setActionDetails(String actionDetails) {
this.actionDetails = actionDetails;
}
}
public class Recorder {
private Record record;
public void record(Record record){
this.record = record;
}
}
public class Test {
private static Recorder recorder = new Recorder();
private static StringBuilder builder;
public static void main(String[] args) {
try {
// other code
builder.append("Test");
} finally {
Runnable runnable = () -> {
final Record record = new Record();
record.setActionDetails(builder.toString());
recorder.record(record);
};
ForkJoinTask<?> task = (ForkJoinTask<?>)runnable;
ForkJoinPool pool = new ForkJoinPool();
pool.invoke(task);
}
}
}