I have a large switch like following:
public int procList(int prov, ArrayList<TXValue> txValueList, Context context)
{
    switch(prov)
    {
    case Foo.PROV_ONE:
        return proc_one(txValueList, context);
    case Foo.PROV_NOE:
        return proc_noe(txValueList, context);
    case Foo.PROV_BAR:
        return proc_bar(txValueList, context);
    case Foo.PROV_CABAR:
        return proc_cabar(txValueList, context);
    case Foo.PROV_FAR:
        return proc_far(txValueList, context);
    case Foo.PROV_TAR:
        return proc_tar(txValueList, context);
    case Foo.PROV_LBI:
        return 408;
    default:
        return -1;
    }
}
In c++ I can use std::map<Foo, some_function_ptr> and use it in manner as following:
map[prov](txValueList, context); 
There is not pointer to function in Java. However, it uses abstract classes like it is in the answer. So, is there a best way to eliminate huge switch clauses in java?
 
     
     
    