No, there is another way to do this better, in my opinion: use the Command pattern and a couple of name / command pairs. You can scale this very long way without switches or reflection. It is also polymorphic - much more "object-oriented."
java.lang.Runnable java.util.concurrent.Callable, . , .
, , . , , , . ? , ? - ?
, , , . , , , .
, "- " .
, , Spring , . , HTTP-, URL-, , REST. - , .