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函数,因此会出现错误
以下是两个您可以尝试使用的选项:
//使用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(“扭曲”);
}
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…
)的结构好的,我会尝试一下,谢谢