Java代码最后一行不正确并返回错误 “Void方法无法返回值”
请,任何建议都非常感谢。
public static void main(String[] args)
{
Main m = new Main();
List<JSONObject> jObj = m.getJsonObject();
StringBuilder sb = new StringBuilder();
for(int i =0 ; i < jObj.size(); i++)
{
sb.append(jObj.get(i).toString());
}
{
String responseStr = "{\"data\":[" + sb + "]}";
System.out.println(responseStr);
return responseStr;
}
}
}
答案 0 :(得分:0)
这是返回错误的原因是因为当您创建一个具有关键字 void 的方法时,您告诉计算机您的方法不会将任何内容返回到调用该方法的位置。因此,当您返回一个值时,您就会反对您之前所写的内容。
要解决此问题,您需要将方法声明中的单词 void 更改为 string
无论其
因为您编写了一个main方法,所以无法更改声明中的 void ,因为main是计算机在启动时调用的方法,它不能返回值。
答案 1 :(得分:0)
它返回错误,因为您实际上在具有void返回类型的方法(public static void main)中返回值( responseStr )。 void返回类型意味着您不会返回任何内容。
另一方面,你根本就没有使用java servlet。这是您正在创建的普通桌面应用程序。
以下是使用java servlet的Hello World应用程序的示例:
// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
private String message;
public void init() throws ServletException
{
// Do required initialization
message = "Hello World";
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// Set response content type
response.setContentType("text/html");
// Actual logic goes here.
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy()
{
// do nothing.
}
}
此处有关java servlet的更多信息:Java Servlets Tutorial
请记住,您需要在像tomcat或jboss这样的Web应用容器中部署此应用程序。
这是一个如何重写代码的示例:
package com.queryData;
//Import required java libraries
import java.io.*;
import java.util.List;
import javax.servlet.*;
import javax.servlet.http.*;
import org.json.JSONObject;
import com.queryData.main.Main;
// Extend HttpServlet class
public class QueryReturn extends HttpServlet {
private static final long serialVersionUID = 1 L;
public void init() throws ServletException
{
// Do required initialization
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Main m = new Main();
List < JSONObject > jObj = m.getJsonObject();
StringBuilder sb = new.StringBuilder();
for (int i = 0; i < jObj.size(); i++) {
sb.append(jObj.get(i).toString());
}
String responseStr = "{\"data\":[" + sb + "]}";
// Set response content type
response.setContentType("application/json");
// Actual logic goes here.
PrintWriter out = response.getWriter();
out.println(responseStr);
}
public void destroy() {
// do nothing.
}
}