如何强制转换 lambda 方法参数?

hel*_*one 6 java lambda java-8

我有一个如下所示的 lambda 表达式。我想问的是是否有任何简单的方法或最佳实践来转换方法参数?

        results.forEach(
            (result) ->
            {
                ((JSONObject)result).put("test", "test"); 
                ((JSONObject)result).put("time", System.currentTimeMillis());  
                otherList.add(((JSONObject)result));
            }
    );
Run Code Online (Sandbox Code Playgroud)

当我尝试更改输入类型时

(JSONObject result) ->
Run Code Online (Sandbox Code Playgroud)

我遇到以下错误;

incompatible types: Consumer<JSONObject> cannot be converted to Consumer<? super Object>
Run Code Online (Sandbox Code Playgroud)

Jud*_*han 1

正如Fabian在评论中建议的那样,您可能已经初始化了您的results喜欢ListList<Object>

你能做的是,你能拥有List<JSONObject>

results.forEach(
            (result) ->
            {
                result.put("test", "test"); 
                result.put("time", System.currentTimeMillis());  
                otherList.add(result);
            }
Run Code Online (Sandbox Code Playgroud)