java.lang.NoSuchMethodError: org.json.JSONArray.isEmpty()Z
我尝试使用来自JAR的isEmpty()方法。JSONArrayorg.json
我使用 IntelliJ 作为我的 IDE。我没有在我的代码中使用任何接近反射的东西。我声明了 a JSONArray,并在尝试检查它是否为空的几行之后,但是在尝试使用isEmpty().
我确实通过使用解决了这个问题jsonArray.length() > 0,但错误消息让我着迷。我查看了 JSONArray 的反编译.class文件,该方法isEmpty() 存在,并且具有公共访问修饰符。此外,InteliiJ 建议我isEmpty()在键入代码时可以使用。那么是什么导致了这个错误呢?
JSONArray filesJsonArray = new JSONArray();
JSONObject fileObject = new JSONObject();
fileObject.put("fileId",fileId);
fileObject.put("fileName",fileName);
fileObject.put("mimeType",mimeType);
filesJsonArray.put(fileObject);
if (!filesJsonArray.isEmpty()){ //the condition check here throws the error.
}
Run Code Online (Sandbox Code Playgroud)
(为简洁起见,Catch 块已被驳回)
在我使用此代码的课程中,这是我所有的导入
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; …Run Code Online (Sandbox Code Playgroud) 我熟悉InputStream缓冲区的概念以及它们有用的原因(例如,当您需要处理可能比机器RAM大的数据时).
我想知道,InputStream实际上如何携带所有数据?OutOfMemoryError如果有太多数据被转移,可能会导致?
如果我从客户端连接到服务器,请求100GB文件,服务器开始使用缓冲区迭代文件的字节,并将字节写回客户端outputStream.write(byte[]).InputStream无论出于何种原因,客户现在还没准备好阅读.服务器会继续无限期地发送文件的字节吗?如果是这样,那么outputstream/inputstream这些机器的RAM 会不会大?