Моя ситуация такова, у меня есть куча команд, например ::1001
someService1.foo()
someService2.bar()
Которые необходимо выполнить двумя различными способами: один в измененном контексте безопасности, а иногда без изменения контекста безопасности. Теперь я планировал написать Executor, который должен иметь такую структуру:
public Object runCommand(Runnable command){
if(someCondition){
//run command in modified context
} else {
//just run the command
}
}
Моя главная проблема заключается в том, как вернуть возвращаемое значение команды вызывающему методу. Потому что run () Runnable имеет тип возврата void. Поэтому я подумал об использовании Callable для достижения этой цели. Но есть ли чистый общий подход к этой проблеме?