Koerr
Koerr

Reputation: 15733

how can I get a linked HashMap

I has a Args class,this class extend HashMap and has some methods:

public class Args extends HashMap{
    public myMethod_1(){
        //...
    }
    public myMethod_2(){
        //...
    }
    public myMethod_3(){
        //...
    }
}

now,I want to get a Linked Args instance,but exnted LinkedHashMap,

I can't change Args exnteds to LinkedHashMap,also can't change Args to a interfaces

can I get a linked Args instance ?

if not,how the best way to get a LinkedArgs? (not repeat myMethod_1-3)

Upvotes: 2

Views: 202

Answers (1)

Stephen C
Stephen C

Reputation: 718856

The simple solution is change Args to extend LinkedHashMap. (I know you said you can't ...)

If that is not an option, then the next best solution is to change Args to implement Map and delegate all of the methods in the Map API (and others as required) to a private LinkedHashMap instance.

If that is not an option, you could do the same with extends HashMap. Basically, you override all of the methods in the parent HashMap, and delegate the actions to a private LinkedHashMap instance. (It is UGLY but it works ... modulo that each Args object has a bunch of attributes that are initialized and never used.)

Upvotes: 2

Related Questions