为了代码清晰起见,永远不要使用子类的名称访问父类的静态成员。这样做会造成混淆,并且可能会导致存在两个不同的静态成员的错觉。
示例
JSONObject paramObject=JSONObject.parseObject(param);
JSONObject 是 JSON的一个子类。源码:
public class JSONObject extends JSON implements Map<String, Object>, Cloneable, Serializable, InvocationHandler {
//省略
}
此处访问的parseObject()是访问的父类JSON中的函数。源码:
public static JSONObject parseObject(String text) {
Object obj = parse(text);
if (obj instanceof JSONObject) {
return (JSONObject)obj;
} else {
try {
return (JSONObject)toJSON(obj);
} catch (RuntimeException var3) {
throw new JSONException("can not cast to JSONObject.", var3);
}
}
}
因此,这里应该改为:
改前:
JSONObject paramObject=JSONObject.parseObject(param);
改后:
JSONObject paramObject=JSON.parseObject(param);