2016-01-21 70 views
0

我有我的方法,下面的代码片段:对象不能在本地创建

JSONParser jsonParser = new JSONParser(); 
try { 
    Object obj = jsonParser.parse(new InputStreamReader(is)); 
    JSONObject jsonObj = (JSONObject) obj; 
    JSONArray jsonArray = (JSONArray) jsonObj.get("JSON_NODE"); 
    String jsonStr = jsonArray.toJSONString(); 
    return (JSONObject)jsonParser.parse(jsonStr);  
} 

在SonarQube我对

String jsonStr = jsonArray.toJSONString(); 

我试图理解为什么会出现“对象未在本地创建一个”问题我得到这个。任何帮助?

+0

看到这个答案http://stackoverflow.com/a/26021695/1796579讨个说法,为什么这里没有错。 – Henry

回答

0

为什么违反?

这违反涉及一个事实,即方法被调用其未在方法中创建和相当的对象 上,检索为 返回对象方法调用对当地 对象中的一个的结果。

您的jsonArray物体满足上述条件。

如何解决,

见一个样本上市here,你的代码可以固定在类似的路线。

根据得墨忒耳定律,一个方法对象OM应该只调用以下几种方法:

1.Methods of Object O itself 
2.Methods of Object passed as an argument 
3.Method of object, which is held in instance variable 
4.Any Object which is created locally in method M