When should one of these be preferred to another?
public static void doStuffWithIt_A( Map<Integer,  ? extends Object > theThings){ ...} 
public static void doStuffWithIt_B( Map<Integer,  ?                > theThings){ ...} 
public static void doStuffWithIt_C( Map<Integer,  Object           > theThings){ ...} 
I've been using a variable parameters passing interface in java, inspired by python's "**kw"argument syntax, and I'm trying to get it 'more right'
 
    