【发布时间】:2015-12-17 05:24:38
【问题描述】:
我有一个带有两个双精度参数的构造器的类。
public class NetcdfHandler {
double x;
double y;
public NetcdfHandler (double x, double y){
x = this.x;
y = this.y;
}
}
当我在我的 Servlet 的 doGet 方法中调用它时,构造函数不会“接收”给定的双精度值。这意味着在创建 NetcdfHandler 实例后,x 和 y 的值都为 0.0(但不是“null”),尽管“Lat”和“Lng”设置正确:
public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
double Lat;
double Lng;
public Test() {
super();
}
protected void doGet(HttpServletRequest req, HttpServletResponse rsp) throws ServletException, IOException {
Lat = Double.parseDouble(req.getParameter("lat"));
Lng = Double.parseDouble(req.getParameter("lng"));
NetcdfHandler nc = new NetcdfHandler(Lat, Lng);
}
我想这是一个初学者的错误,但我无法弄清楚这里有什么问题。也许有人可以帮忙?
【问题讨论】:
-
打印
req.getParameter("lat")和req.getParameter("lng")看看你得到了什么 -
你交换了
x和this.x的位置。投票结束是一个错字。 -
另外,在服务处理程序中使用字段而不是局部变量是一个坏主意。
标签: java constructor arguments double