Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java can';t return JSONArray:意外的返回值_Java_Arrays_Json - Fatal编程技术网

Java can';t return JSONArray:意外的返回值

Java can';t return JSONArray:意外的返回值,java,arrays,json,Java,Arrays,Json,我有这个功能: playerList.forEach(pl ->{ JSONObject player = (JSONObject) pl; System.out.println(player.get("UUID")+" : " + uuid+" :") 但在“返回扭曲”行上有一个错误,该行表示“意外返回值”。 为什么会发生这种情况?您在一个匿名函数(ForEach

我有这个功能:

        playerList.forEach(pl ->{
            JSONObject player = (JSONObject) pl;
            System.out.println(player.get("UUID")+" : " + uuid+" :")
但在“返回扭曲”行上有一个错误,该行表示“意外返回值”。
为什么会发生这种情况?

您在一个匿名函数(ForEach for playerList)中返回扭曲,因此ForEach的签名不匹配,从而导致错误


您应该为流使用最有可能的
过滤器
和合适的终止符。然后只需从
getWarps
方法返回收集的JSONArray。

就像前面提到的am9417一样,返回语句位于forEach范围内,它是一个void函数,因此会出现错误

以下是两个您可以尝试使用的选项:

  • 使用流。在这里,我使用filter获取与uuid标准(示例方法中的参数)匹配的项。然后在末尾查找first,以始终获取第一个匹配项,假设您一直期望1个UUID匹配项
  • //使用findFirst返回可选类型。
    可选optionalPlayer=玩家列表
    .stream()
    .过滤器(pl->{
    JSONObject播放器=(JSONObject)pl;
    System.out.println(player.get(“UUID”)+“:“+UUID+”:”;
    返回玩家.get(“UUID”).equals(UUID);
    }).findFirst();
    if(optionalPlayer.isPresent()){
    return(JSONArray)optionalPlayer.get().get(“扭曲”);
    }
    
  • 使用简单的for循环:
  • JSONArray播放器列表=(JSONArray)obj;
    for(对象pl:playerList){
    JSONObject播放器=(JSONObject)pl;
    System.out.println(player.get(“UUID”)+“:“+UUID+”:”;
    如果(player.get(“UUID”).equals(UUID)){
    return(JSONArray)player.get(“warps”);
    }
    }
    
    您希望得到什么
    返回扭曲
    forEach
    消费者
    中执行?因此,如果我尝试返回一个有效的字符串,但如果我尝试返回一个JSONArray,它会给我这个错误。我只想返回一个JSONArray,您可以解释一下吗?(抱歉,我是java新手)看起来您对java流不太熟悉,所以请重写您的代码,例如,使用“普通”循环并删除流(即:带有
    playerList.ForEach…
    )的结构好的,我会尝试一下,谢谢