JSONArray流给出警告“未经检查的对'filter(Predicate <!-?super T->))的调用”

时间:2018-10-05 07:26:27

标签: arrays json foreach filter java-stream

void foo(JSONObject jsonObject) {
    JSONArray rows = (JSONArray) data.get("Rows");
    rows.stream().filter(obj -> {
        JSONObject jObj = (JSONObject) obj;
        return (boolean) jObj.get("IsFooBar");
    }).forEach(obj -> {
        JSONObject jObj = (JSONObject) obj;
        // Do more stuff...
    };
}

这段代码给了我这些警告:

Unchecked call to 'filter(Predicate<? super T>)' as a member of raw type 'java.util.stream.Stream'
Unchecked call to 'forEach(Consumer<? super T>)' as a member of raw type 'java.util.stream.Stream'

如何解决这些警告?

还有,在过滤操作之前,是否有很好的方法将JSONArray中的所有对象转换为JSONObject?这样,我不必在筛选器谓词中强制转换每个对象。

0 个答案:

没有答案