如何解决名称冲突具有相同的擦除?

时间:2018-09-18 15:11:13

标签: java generics type-erasure

此刻我遇到了这个问题,我得到了一个具有两个方法且具有相同擦除的类:

public class VO implements Map<String,String> , Serializable{

    public synchronized String put (Object key, Object value){

       if (key == null)

           return null;

       if (value == null)
           return remove(key);
       String stringKey = key.toString();

       String stringValue = value.toString();

       if (value instanceof Boolean)
            stringValue = ((Boolean)value) ? "Y" : "N";

       return put(stringKey,stringValue);
}

@Override
public synchronized String put (String key, String value)
{
    if (key == null)
        return null;
    if (value == null)
        return remove(key);
    //
    int index = m_keys.indexOf(key);
    if (index != -1)
        return m_values.set(index, value);
    m_keys.add(key);
    m_values.add(value);
    return null;
   }    //  put
 }

此应用程序经常使用这两种方法,我无法更改任何方法的名称,也无法删除put(Object key, Object value)方法,有什么想法可以解决此问题吗?

1 个答案:

答案 0 :(得分:0)

@Aris_Kortex很好,首先使用VO来创建此应用程序的UImodel,并且VO的构造函数是这样:

public VO (Map<String,String> map)
   {
    this();
    Iterator<String> it = map.keySet().iterator();
    while (it.hasNext())
    {
        Object key = it.next().toString();
        Object value = map.get(key);
        put (key, value);
    }
}   //  VO

/** Base SerVersion */
private static final long serialVersionUID = 8683452581122892189L;

/** Keys            */
private ArrayList<String>   m_keys;
/** Values          */
private ArrayList<String>   m_values;
/** Embedded VOs    */
protected ArrayList<VO>     p_vos = null;

那我很害怕,我无法衡量在这里更改某些东西的影响...我需要创建一个我重构过的这个proyect的程序包,因为以前是一团糟..但是行家抛出了这个错误... < / p>

相关问题