Nope, I was write the first time; they're invariant. I forgot the
@Override annotation.

Also, you can apparently create an inner class by saying

MyObj.InnerClass ic = myObj.new InnerClass(args);

This doesn't really get us very far though, without reflection.

-- David



On Wed, Jul 22, 2009 at 2:25 PM, David Hall<[email protected]> wrote:
> Oops, they are contravariant. Ok, so my proposed best practice is to
> make Mapper's take a MapContext and not a Mapper.Context, and I'll
> cook up a DummyContext real fast.
>
> -- David
>
> On Wed, Jul 22, 2009 at 2:22 PM, David Hall<[email protected]> wrote:
>> Mapper.Context extends MapContext. The interfaces takes
>> Mapper.Context, and IIRC method arguments aren't contravariant in
>> Java.
>>
>> -- David
>>
>> On Wed, Jul 22, 2009 at 2:20 PM, Ted Dunning<[email protected]> wrote:
>>> Got it.
>>>
>>> Sorry to be dense.
>>>
>>> Is it really necessary to abuse reflection?  What about this:
>>>
>>> http://hadoop.apache.org/common/docs/r0.20.0/api/org/apache/hadoop/mapreduce/MapContext.html
>>>
>>> ?
>>>
>>> On Wed, Jul 22, 2009 at 2:15 PM, David Hall <[email protected]> wrote:
>>>
>>>> There is no obvious analog to a dummyCollector, precisely because
>>>> Context is a *non-static* class.
>>>>
>>>
>>>
>>>
>>> --
>>> Ted Dunning, CTO
>>> DeepDyve
>>>
>>
>

Reply via email to