具有相同参数的多个构造函数

时间:2012-04-03 03:03:49

标签: java constructor equals

我正在尝试设置一个构造函数,其中使用的数据结构将由参数::

中的字符串确定
DictionaryI<IPAddress,String> ipD; //declaring main structure using interface

 // Constructor, the type of dictionary to use (hash, linkedlist, array)
 // and the initial size of the supporting dictionary
    public IPManager(String dictionaryType, int initialSize){
        if(st1.equals(dictionaryType))
            ipD = new LinkedListDictionary();
        if(st2.equals(dictionaryType))
            ipD = new HashDictionary(initialSize);
        if(st3.equals(dictionaryType))
            ipD = new ArrayDictionary(initialSize);
        else
            throw new UnsupportedOperationException();
    }

当运行代码时,无论我放入什么,我都会得到“UnsuportedOperationException”。非常感谢任何帮助或正确方向上的一点。 (代码是Java)

1 个答案:

答案 0 :(得分:6)

显而易见的答案是

public IPManager(String dictionaryType, int initialSize){
    if(st1.equals(dictionaryType))
        ipD = new LinkedListDictionary();
    else if(st2.equals(dictionaryType))
        ipD = new HashDictionary(initialSize);
    else if(st3.equals(dictionaryType))
        ipD = new ArrayDictionary(initialSize);
    else
        throw new UnsupportedOperationException();
}

对于st1st2,您的代码会落到throw

那就是说,这种做法一般都很糟糕。有关参考资料,请参阅Java集合接口(例如Map<K,V>)及其实现(HashMapTreeMap等)。