使用关键字“将方法添加到内置类中”的人可能会在这里结束。如果您要将方法添加到非最终类(如HashMap),则可以执行此类操作。
public class ObjectMap extends HashMap {
public Map map;
public ObjectMap(Map map){
this.map = map;
}
public int getInt(String K) {
return Integer.valueOf(map.get(K).toString());
}
public String getString(String K) {
return String.valueOf(map.get(K));
}
public boolean getBoolean(String K) {
return Boolean.valueOf(map.get(K).toString());
}
@SuppressWarnings("unchecked")
public List getListOfStrings(String K) {
return (List) map.get(K);
}
@SuppressWarnings("unchecked")
public List getListOfIntegers(String K) {
return (List) map.get(K);
}
@SuppressWarnings("unchecked")
public List> getListOfMapString(String K) {
return (List>) map.get(K);
}
@SuppressWarnings("unchecked")
public List> getListOfMapObject(String K) {
return (List>) map.get(K);
}
@SuppressWarnings("unchecked")
public Map getMapOfObjects(String K) {
return (Map) map.get(K);
}
@SuppressWarnings("unchecked")
public Map getMapOfStrings(String K) {
return (Map) map.get(K);
}
}
现在将此类的新实例定义为:
ObjectMap objectMap = new ObjectMap(new HashMap();
现在,您可以访问内置Map类的所有方法,以及新实现的方法。
objectMap.getInt("KEY");
修改强>
在上面的代码中,为了访问map类的内置方法,你必须使用
objectMap.map.get("KEY");
这是一个更好的解决方案:
public class ObjectMap extends HashMap {
public ObjectMap() {
}
public ObjectMap(Map map){
this.putAll(map);
}
public int getInt(String K) {
return Integer.valueOf(this.get(K).toString());
}
public String getString(String K) {
return String.valueOf(this.get(K));
}
public boolean getBoolean(String K) {
return Boolean.valueOf(this.get(K).toString());
}
@SuppressWarnings("unchecked")
public List getListOfStrings(String K) {
return (List) this.get(K);
}
@SuppressWarnings("unchecked")
public List getListOfIntegers(String K) {
return (List) this.get(K);
}
@SuppressWarnings("unchecked")
public List> getListOfMapString(String K) {
return (List>) this.get(K);
}
@SuppressWarnings("unchecked")
public List> getListOfMapObject(String K) {
return (List>) this.get(K);
}
@SuppressWarnings("unchecked")
public Map getMapOfObjects(String K) {
return (Map) this.get(K);
}
@SuppressWarnings("unchecked")
public Map getMapOfStrings(String K) {
return (Map) this.get(K);
}
@SuppressWarnings("unchecked")
public boolean getBooleanForInt(String K) {
return Integer.valueOf(this.get(K).toString()) == 1 ? true : false;
}
}
现在您不必致电
objectMap.map.get("KEY");
只需致电
objectMap.get("KEY");